使用dict.get有条件地为嵌套字典

时间:2018-05-22 18:15:29

标签: python python-3.x dictionary nested

我正在写一个循环来导入20个.json文件。我想创建一个包含20个字典的字典。我有一切,除了我需要有条件地使用两个字段之一来分配20个字典名称(即顶级字典中的20个键)。

我的循环的最后两行是:

name=jsondat.get('Info', {}).get('Name')
dict1[name] = text_dict

name行很有效,但所有20个.json文件中都不存在['Info']['Name']。在这些情况下,我希望使用正则表达式从['Info']中的不同字段中提取子字符串。为简洁起见,我们只想说我想使用名为'URL'的字段。所以我似乎需要做一些事情:

name=jsondat.get('Info', {}).get('Name','URL')
dict1[name] = text_dict

但这并不奏效。它会运行,但在'URL'不可用时,它实际上并未使用'Name'字段。

1 个答案:

答案 0 :(得分:2)

您可以执行类似

的操作
info = jsondat.get('Info', {})
name = info.get('Name', info.get('URL', None))

哪个会使用'名称'如果它存在,否则它会查找' URL'否则它只返回None。