【问题标题】:Using dict.get to conditionally assign keys for nested dictionaries使用 dict.get 有条件地为嵌套字典分配键
【发布时间】:2018-05-22 18:15:28
【问题描述】:

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

我循环的最后两行是:

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

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

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

但这不起作用。它运行,但当'Name' 不可用时,它实际上并没有使用'URL' 字段。

【问题讨论】:

  • dict.get 的第二个参数是默认的返回值

标签: python python-3.x dictionary nested


【解决方案1】:

你可以这样做

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

如果存在,它将使用 'Name' 的值,否则它会查找 'URL',否则它只返回 None。

【讨论】:

    猜你喜欢
    • 2010-12-08
    • 2019-07-05
    • 1970-01-01
    • 1970-01-01
    • 2018-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-30
    相关资源
    最近更新 更多