尝试按键查找值时收到错误(python)
当尝试在json数据中检索Q1时,我收到了一个错误:字符串索引必须是整数尝试按键查找值时收到错误(python),python,json,Python,Json,当尝试在json数据中检索Q1时,我收到了一个错误:字符串索引必须是整数 { "ID_54321":{ "Name":"John Doe", "Email":"jdoe@gmail123.com", "Q1":"3" } } 我能够检索该项目 for key in data: for item in data[key]: print item 结果 Name Email Q1 问题是,我无法检索我试图检索的项的值 for
{
"ID_54321":{
"Name":"John Doe",
"Email":"jdoe@gmail123.com",
"Q1":"3"
}
}
我能够检索该项目
for key in data:
for item in data[key]:
print item
结果
Name
Email
Q1
问题是,我无法检索我试图检索的项的值
for key in data:
for item in data[key]:
print item["Q1"]
我收到了错误:
TypeError: string indices must be integers
在数据[key]中循环时,您可以使用数据[key][item]获取值:
项[Q1]给您一个错误,因为项是字符串。您要做的是访问内部字典的键值,因此请尝试将其更改为以下内容:
for key in data:
for item in data[key]:
print data[key][item]
for item in data.keys():
for k,v in data[item].items():
print(k,v)
首先,我假设您讨论的是迭代字典而不是JSON对象,因为JSON是数据的字符串表示,而dictionary是数据结构 在您的例子中,项实际上是一个字符串,它是嵌套dict中键的名称,所以您无法从中获取值 如果您只寻找'Q1'键的值,您可以执行以下操作: 对于键入data.iterkeys: 打印数据[键]['Q1'] 但是,假设您希望打印嵌套字典中的每个值,而不仅仅是“Q1”,它可能是:
for key in data.iterkeys():
for k, v in data[key].iteritems():
print k, v
其中k是每个键的名称,v是对应的值。
在Python3.X中,它看起来是这样的:
for key in data:
for item in data[key]:
print data[key][item]
for item in data.keys():
for k,v in data[item].items():
print(k,v)
仔细查看您的对象类型,并尝试找出错误的含义。如果同时打印密钥,则可能有助于可视化