不存在的字典返回字符串名称,如何跳过此Python



我有一个包含不同值和id的字典。字典中的第一个索引不包含'id'字典,但第二个索引包含'id'字典我遇到的问题是当我打印:

return[0]['values']['id']

它返回'id'

因为在第一个索引

中没有这样的字典第二个索引return[1]['values']['id']'id'字典确实存在,因此返回[{"id": "4651234", "type":"instant"}]

我试图创建一个仅存在的id值的列表,我如何让它跳过'id'字典不存在的所有索引?而不是停止程序并打印字符串'id'。

你可以循环使用if语句来检查id是否存在:

id_list = []
for key in return:
if return[key]['values']['id'] != 'id':
id_list.append(return[key]['values']['id'])

(顺便说一句,你应该避免使用return或任何其他可能对语言有意义的关键字来命名变量)

如果返回值是列表或字符串

if isinstance(return[0]['values']['id'],list):
#process the data
elif isinstance(return[0]['values']['id'],str):
#do nothing

说了这么多,我有几个建议:我假设你写它是作为一个例子,但以防万一,不可能有&;return&;作为变量名,因为它是一个保留字。

另一点是,如果相同的调用返回不同的东西(即第一个返回一个str,第二个返回一个包含字典的列表,等等),这可能表明在尝试访问它之前需要对数据进行一些清理。否则,你可能会得到令人讨厌的结果,而你不知道它们是从哪里来的。

相关内容

  • 没有找到相关文章

最新更新