Я пытаюсь изменить указанное c вложенное значение («pH»), если «ID» совпадает, но меняет только первое, а не то, которое я намеревался.
Кто я пытается сделать:
{
"type": "FeatureCollection",
"name": "test",
"crs": {
"type": "name",
"properties": {
"name": "urn:ogc:def:crs:EPSG::3059"
}
},
"features": [{
"type": "Feature",
"properties": {
"ID": 1,
"pH": 3.5,
"P": 2.8,
"K": 11.0,
"Mg": 15.8
},
"geometry": {
"type": "Polygon",
"coordinates": [
[
]
]
}
}, {
"type": "Feature",
"properties": {
"ID": 2,
"pH": 3,
"P": 2.5,
"K": 11.1,
"Mg": 15.8
},
"geometry": {
"type": "Polygon",
"coordinates": [
[
]
]
}
}
]
}
Но он изменяет «значение pH, где« ID »равно 1, и значение« pH », где« ID »: 2 остается прежним.
Вот мой код:
import json
with open('filepath', 'r+') as f:
data = json.load(f)
for feature in data['features']:
print(feature['properties'])
if feature['properties']["ID"] == 2:
data['features'][0]['properties']["pH"]=10
f.seek(0)
json.dump(data, f, indent=4)
f.truncate()