我想对包含JSON的python列表进行操作,以使{{1}中的key
的{{1}}值替换为{{1} }}值等于source_split_response
中的name
值。
online_source
Python代码:
onlineId
打印:key
预期输出:source_split_response
尽管我得到了所需的最终输出,但它们是 更有效和pythonic的方式来实现相同的目标?
答案 0 :(得分:1)
您可以保留ID到名称的映射关系,以避免重复遍历整个数组以匹配它们:
idDict = dict()
for entry in online_source:
idDict[entry['onlineId']] = entry['name']
for entry in source_split_response:
if entry['key'] in idDict:
entry['key'] = idDict[entry['key']]
print(source_split_response)
我不知道您为什么想要列表理解,但这是一种方法:
idDict = {entry['onlineId']:entry['name'] for entry in online_source}
[entry.update({'key': idDict.get(entry['key'], entry['key'])}) for entry in source_split_response]
print(source_split_response)