我在字典中有以下示例字典,如何仅在数据字段中循环并显示键/值。当我运行下面的代码时,出现以下错误。不知道我在做什么错。任何建议,请。
in1 = {
"data": {
"id": "1574083",
"username": "snoopdogg",
"full_name": "Snoop Dogg",
"profile_picture": "http://distillery.s3.amazonaws.com/profiles/profile_1574083_75sq_1295469061.jpg",
"bio": "This is my bio",
"website": "http://snoopdogg.com",
"counts": {
"media": 1320,
"follows": 420,
"followed_by": 3410
}
}}
print(in1['data']['id'])
for k , v in in1.items():
print("\n RAW DATA:" + k)
u_info = v['username'] + ' ' + v['full_name']
print("Thanks for the info : " + u_info)
for ke,v1 in v.items():
print("Keys ", ke['website'])
print("Keys ", ke['counts'])
我得到的错误是
python3 dictionary_example.py
1574083
RAW DATA:data
Thanks for the info : snoopdogg Snoop Dogg
Traceback (most recent call last):
File "dictionary_example.py", line 24, in <module>
print("Keys ", ke['website'])
TypeError: string indices must be integers
您正在打印引起问题的引号内的u_info
。在您的代码中,您尝试使用键k1
作为字典,但它是字符串。如果要打印website
和counts
值,则无需使用for循环,您可以直接使用v['website']
和v['counts']
。
in1 = {
"data": {
"id": "1574083",
"username": "snoopdogg",
"full_name": "Snoop Dogg",
"profile_picture": "http://distillery.s3.amazonaws.com/profiles/profile_1574083_75sq_1295469061.jpg",
"bio": "This is my bio",
"website": "http://snoopdogg.com",
"counts": {
"media": 1320,
"follows": 420,
"followed_by": 3410
}
}}
print(in1['data']['id'])
for k , v in in1.items():
print("\n RAW DATA:" + k)
u_info = v['username'] + ' ' + v['full_name']
print("\t" + u_info)
print("Keys ", v['website'])
print("Keys ", v['counts'])
就像@Raju的答案一样,您可以不循环地获取['website']
和['counts']
的值,因为它只有一个字典(基于您的问题)。
尝试一下:
print(in1['data']['id'])
print(in1['data']['website'])
print(in1['data']['counts'])