【发布时间】:2018-08-22 18:49:38
【问题描述】:
我正在向 REST 服务发出多个请求,并从每个请求中获取 JSON 数据。我想要做的是将所有这些 JSON 对象(希望我使用正确的术语)合并到一个对象中。我该怎么做?
minCount = 1
maxCount = 1000
masterJson = {}
for x in range(36):
params = {'f': 'json', 'where': 'OBJECTID>='+str(minCount)+'and OBJECTID<='+str(maxCount), 'geometryType': 'esriGeometryPolygon', 'spatialRel': 'esriSpatialRelIntersects','outFields': '*', 'returnGeometry': 'true'}
r = requests.get('https://hazards.fema.gov/gis/nfhl/rest/services/CSLF/Prelim_CSLF/MapServer/3/query', params)
cslfJson = r.json()
masterJson.update(cslfJson)
for item in cslfJson['features']:
objCount = item['attributes']['OBJECTID']
if minCount < objCount:
break
else:
minCount = minCount + maxCount
maxCount = maxCount + 1000
本质上,它是我想要组合成一个 cslfJson 对象变量的 cslfJson 变量(JSON obj)。
【问题讨论】:
-
每次运行masterJson.update(cslfJson)都会替换masterJson中的数据,是故意的吗?
-
没有。这是问题的一部分。我希望它添加 cslfJson 数据的每次迭代,而不是用新数据更新它。
-
为什么不使用 masterJson = [] 并执行 masterJson.append(cslfJson) 来收集所有响应?
-
我之前确实考虑过。然后我可以将该 masterJson 列表转换为字典/JSON 对象吗? json.dump() 不这样做吗?
-
你应该能够 json.dump() 任何有效的 json。你可以在这里jsoneditoronline.org 测试json。对象列表是有效的 json 对象。
标签: json python-3.x merge