我有這個樣子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]。 –