我想动态解析字典
在这里,我试图动态获取键的名称,并将该键存储在变量中,然后使用这些变量调用字典
到目前为止,我已经尝试过
var=users.to_dict()
z=var.keys()
y=z[0]
x=var[str(y)]['Scheme name']
当我通过str(y)时给出错误
y=x[0]
TypeError: 'dict_keys' object does not support indexing
有没有更好的方法可以做到这一点。请让我知道
答案 0 :(得分:1)
您无法为“ dict_keys”建立索引,但如果将其解析为“列表”
var=users.to_dict()
z=list(var.keys())
y=z[0]
x = var [str(y)] ['方案名称']
它应该工作
答案 1 :(得分:0)
y=z[0]
是您的错误所在。
var.keys()
不返回列表,它返回不支持索引的dict_keys
。您可以将其转换为列表,然后进行索引:
y = list(x)[0]
但是,z = list(var)
将具有相同的效果(键列表),并且更加直接。
dict_keys
是这样的,因为它是view object。如果基础字典发生更改,则其内容也会更改,这是一个可迭代的过程。将其强制转换为列表(或将字典强制转换为列表)的结果是它不再连接到字典。