我想从一个 json 文件创建一个字典,但我尝试过的所有方法都不起作用。
json_file = [
{'original_block': '94.142.136.0/21',
'transferred_blocks': '94.142.136.0/21',
'from': 'MAROSNET Telecommunication Company LLC',
'to': 'NTX Technologies s.r.o.',
'date': '28/06/2019',
'transferType': 'POLICY'
},
{'original_block': '185.2.4.0/22',
'transferred_blocks': '185.2.4.0/22',
'from': 'REGISTER.IT S.P.A.',
'to': 'REGISTER S.P.A.',
'date': '01/07/2019',
'transferType': 'MERGER_OR_ACQUISITION'
}
]
new = ['original_block', 'date']
newd = {key:value for key,value in json_file.items() if key in new}
print(newd)
它给出错误信息 'list' object has no attribute 'items'
我希望
newd = {'94.142.136.0/21': '28/06/2019', '185.2.4.0/22':'01/07/2019'}
请您参考如下方法:
你可以使用 dict 的理解:
data = [{'original_block': '94.142.136.0/21', 'transferred_blocks': '94.142.136.0/21', 'from': 'MAROSNET Telecommunication Company LLC', 'to': 'NTX Technologies s.r.o.', 'date': '28/06/2019', 'transferType': 'POLICY'}, {'original_block': '185.2.4.0/22', 'transferred_blocks': '185.2.4.0/22', 'from': 'REGISTER.IT S.P.A.', 'to': 'REGISTER S.P.A.', 'date': '01/07/2019', 'transferType': 'MERGER_OR_ACQUISITION'}]
new = ['original_block', 'date']
result = dict([c[i] for i in new] for c in data)
输出:
{'94.142.136.0/21': '28/06/2019', '185.2.4.0/22': '01/07/2019'}
编辑:作为预防措施,可以使用 all 检查来确保缺失值不会引发 KeyError:
dict([c[i] for i in new] for c in data if all(j in c for j in new))
