【问题标题】:Python: Extracting multiple values from dictPython:从字典中提取多个值
【发布时间】:2021-09-03 16:46:29
【问题描述】:
x = json.loads(y)
z1 = (x[0][0])
z2 = (x[0][1])
z3 = (x[0][2])
z4 = (x[0][3])

等等……

我们如何检查 [4],[5],[6] 是否存在于 dict 中,如果存在则打印/分配结果?

【问题讨论】:

    标签: python json python-3.x list


    【解决方案1】:

    正如@Antonio Margaretti 所指出的,您应该使用 x.get('key')。您的完整代码将是:

    x = json.loads(y)
    z1 = (x[0][0])
    z2 = (x[0][1])
    z3 = (x[0][2])
    z4 = (x[0][3])
    
    for i in (4,5,6):
        k= x[0].get(i)
        if k is not None:
            print(k)
    

    【讨论】:

    • 如何将它们分配给递增的 z 变量?
    • 您可以使用:globals()['z'+str(i)]=k,但一般不建议这样做。您最好使用字典 z 并将变量分配为此字典的项目:z[4]=k、z[5]=5 等
    • AttributeError("'list' 对象没有属性 'get'")?
    • 这意味着 x[0] 是一个列表而不是一个字典。在这种情况下,您可以遍历此列表的长度:for i in range(len(x[0])): globals()['z'+str(i)]=x[0][i]
    • 它奇怪地遍历列表(在 for 循环中使用 print 语句)。 #print(globals()['z'+str(i)]) 分配给变量是否缺少某些东西?
    【解决方案2】:

    您可以使用x.get("key"),其中 x 是您的字典。因此,如果您的 dict 中存在这样的键,则数据将被返回,否则您将得到 None。

    小例子:

    data = x.get("some_key")
    if data is not None:
        print(data)
    

    【讨论】:

      猜你喜欢
      • 2022-01-25
      • 2017-08-08
      • 2021-09-17
      • 1970-01-01
      • 2020-09-06
      • 1970-01-01
      • 1970-01-01
      • 2021-04-19
      相关资源
      最近更新 更多