我有这个样子Python的 - 从第二个文件JSON文件替换值,如果密钥匹配
{"type": "FeatureCollection", "features": [{ "type": "Feature", "properties": { **"id"**: "Carlow", **"density"**: "0" } , "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ -6.58901, 52.906464 ], [ -6.570265, 52.905682 ], [ -6.556207, 52.906464 ],
二JSON文件中的两个JSON文件
{"features": [{"**count**": 2, "name": "**Sligo**"}, {"count": 3"name":"Fermanagh"},{"count": 1, "name": "Laois"},
我想检查是否“ ID“在第一个文件中匹配”名称“在第二个文件中,如果是这样,将值为”密度“更改为值为从第二个文件中“计数”。我正在寻找使用我在这里找到的类似问题的递归Replace value in JSON file for key which can be nested by n levels,但它只检查一个键是否匹配并更改值。在更改值之前,我需要两个键匹配。这是我迄今为止使用的代码,但不知道如何添加两个键和两个值。我使用计数器来计算出现字符串的次数并将其保存到县第一个JSON文件county_names.json。 ire_countiesTmp.json是我的第一个文件,我试图从第二个文件中替换值。我不知道如何用Python做到这一点,因为只有开始学习它。任何帮助都会很棒,或者如果你知道更好的方法。谢谢
import json, pprint
from collections import Counter
with open('../county_names.json') as data_file:
county_list = json.load(data_file)
for i in county_list:
c = Counter(i for i in county_list)
for county,count in c.iteritems():
with open('ire_countiesTmp.json') as f:
def fixup(adict, k1, v1, k2, v2):
for key in adict.keys():
if adict[key] == v1:
adict[key] = v
elif type(adict[key]) is dict:
fixup(adict[key], k, v)
#pprint.pprint(data)
fixup(data, 'id', county, 'density', count)
pprint.pprint(data)
我不明白你的代码做什么。代码中引用的'fixup'和de json文件与你的问题中的json有什么关系?你应该编辑这个代码是你问题的一个[mcve]。 –