Python 从json字典中提取组件
我有一个json字典(Python 从json字典中提取组件,python,json,list,Python,Json,List,我有一个json字典(result\u dict\u tag),如下所示: {'10644906845': {'photo': {'id': '10644906845', 'tags': {'tag': [{'_content': 'srilanka', 'author': '34665545@N05', 'authorname': 'CrishyM', 'id': '34660205-10644906845-23098', 'machine
result\u dict\u tag
),如下所示:
{'10644906845': {'photo': {'id': '10644906845',
'tags': {'tag': [{'_content': 'srilanka',
'author': '34665545@N05',
'authorname': 'CrishyM',
'id': '34660205-10644906845-23098',
'machine_tag': 0,
'raw': 'sri lanka'},
{'_content': 'navy',
'author': '34665545@N05',
'authorname': 'CrishyM',
'id': '34660205-10644906845-7137',
'machine_tag': 0,
'raw': 'navy'},
{'_content': 'vessel',
'author': '34665545@N05',
'authorname': 'CrishyM',
'id': '34660205-10644906845-8792',
'machine_tag': 0,
'raw': 'vessel'}]}},
'stat': 'ok'},
'11778819726': {'photo': {'id': '11778819726',
'tags': {'tag': [{'_content': 'sri',
'author': '44455081@N07',
'authorname': 'Vinchel',
'id': '44433751-11778819726-12165',
'machine_tag': 0,
'raw': 'sri'},
{'_content': 'lanka',
'author': '44455081@N07',
'authorname': 'Vinchel',
'id': '44433751-11778819726-12166',
'machine_tag': 0,
'raw': 'lanka'},
{'_content': 'mirissa',
'author': '44455081@N07',
'authorname': 'Vinchel',
'id': '44433751-11778819726-1158107',
'machine_tag': 0,
'raw': 'mirissa'}]}},
'stat': 'ok'}}
我想要的是从每个字典中提取“原始”单词(例如,
result\u dict\u tag['10644906845']['photo']['tags]['tag'][0]['raw']]
),并为每个用户创建一个包含用户id和相关原始单词的数据框。我觉得这需要一些循环。我已经写了一个,它只会产生与第一个用户相关的“原始”单词。我已经阅读了文档和类似的各种问题。但是我想不出来。感谢您的帮助 您可以在单个列表中提取这些内容
raw_words = [mydict[i]['photo']["tags"]['tag'][k]['raw']
for k in range(len(mydict[i]['photo']["tags"]['tag']))
for i in mydict]
print(raw_words)
>> ['sri', 'sri lanka', 'lanka', 'navy', 'mirissa', 'vessel']
如果我理解正确,您需要的是一个
目录的列表
,每个目录都包含一个id
和一个行
在dict下面添加以下代码行:
new_list = result_dict_tag['10644906845']['photo']["tags"]['tag']
new_desired_list = []
for index in range(len(new_list)):
tempDict = {}
for key in new_list[index]:
if(key=='id'):
tempDict['id'] = new_list[index][key]
if(key=='raw'):
tempDict['row'] = new_list[index][key]
new_desired_list.append(tempDict)
print(new_desired_list)
你可能会发现这个问题很有帮助,谢谢,@Varun,我已经试过了。但它显示了一个错误,因为没有定义名称i。我无法理解,因为我对python有点陌生。感谢您的帮助。请确保列表理解正确地格式化为一行。