Я хочу работать со списками Python, содержащими JSON, таким образом, чтобы значение key
в source_split_response
заменялось значением name
online_source
, где значение onlineId
равно значению key
в source_split_response
.
online_source = [{'_id': {'$oid': '5c989c112ae8570ca8c6bcd1'},
'name': 'Blogs',
'onlineId': '606881',
'type': 'source'},
{'_id': {'$oid': '5c989c122ae8570ca8c6bcd2'},
'name': 'Facebook',
'onlineId': '606911',
'type': 'source'},
{'_id': {'$oid': '5c989c122ae8570ca8c6bcd3'},
'name': 'Instagram',
'onlineId': '606937',
'type': 'source'},
{'_id': {'$oid': '5c989c122ae8570ca8c6bcd4'},
'name': 'Tumblr',
'onlineId': '606961',
'type': 'source'},
{'_id': {'$oid': '5c989c122ae8570ca8c6bcd5'},
'name': 'Twitter',
'onlineId': '606963',
'type': 'source'},
{'_id': {'$oid': '5c989c132ae8570ca8c6bcd6'},
'name': 'Others',
'onlineId': '606949',
'type': 'source'},
{'_id': {'$oid': '5c989c132ae8570ca8c6bcd7'},
'name': 'Forums',
'onlineId': '606925',
'type': 'source'},
{'_id': {'$oid': '5c989c132ae8570ca8c6bcd8'},
'name': 'Youtube',
'onlineId': '606965',
'type': 'source'}]
source_split_response = [
{
"key" : "News",
"doc_count" : 20
},
{
"key" : "606881",
"doc_count" : 12
},
{
"key" : "606925",
"doc_count" : 6
}
]
Код Python:
for ind_source_resp in range(0, len(source_split_response)):
for ind_source_map in range(0, len(online_source)):
if(source_split_response[ind_source_resp]['key'] == online_source[ind_source_map]['onlineId']):
source_split_response[ind_source_resp]['key'] = online_source[ind_source_map]['name']
print(source_split_response)
Отпечатки: [{'key': 'News', 'doc_count': 20}, {'key': 'Blogs', 'doc_count': 12}, {'key': 'Forums', 'doc_count': 6}]
Ожидаемый результат: [{'key': 'News', 'doc_count': 20}, {'key': 'Blogs', 'doc_count': 12}, {'key': 'Forums', 'doc_count': 6}]
Хотя я получаю конечный результат как желаемый, но это их
более эффективный и питонный способ добиться того же?