未从提取的 API 数据中获得正确的 JSON 格式
Not getting the correct JSON format from pulled API data
我正在尝试将此输出转换为正确的 JSON 格式。不幸的是,这并没有真正解决。来自 API 拉取的所有数据都存储在一个列表中,然后我读取该列表以优化它并只获取我需要的数据。
def refine_data():
with open("api-pull.json", encoding='utf-8') as json_file:
json_data = json.load(json_file)
print('JSON loaded correctly')
with open('REFINEDapi-pull.json', 'w', encoding='utf-8') as REFINED:
for s in range(len(json_data)):
if 'lat' in json_data[s] and 'lng' in json_data[s]: #if coordinates exist
json.dump({
'name' : json_data[s]["name"],
'latitude' : json_data[s]["lat"],
'longitude' : json_data[s]["lng"],
'status' : json_data[s]["status"]["online"],
'address' : json_data[s]["address"],
'reward_scale' : json_data[s]["reward_scale"]
}, REFINED, ensure_ascii=False, indent=4)
我当前输出的小样本:
我要完成的示例:
您应该做的是将您创建的 dict
附加到列表,然后 json.dump()
将单个列表附加到文件:
def refine_data():
with open("api-pull.json", encoding='utf-8') as json_file:
json_data = json.load(json_file)
print('JSON loaded correctly')
with open('REFINEDapi-pull.json', 'w', encoding='utf-8') as REFINED:
result = [] # start a list here
for s in range(len(json_data)):
if 'lat' in json_data[s] and 'lng' in json_data[s]: #if coordinates exist
result.append({
'name' : json_data[s]["name"],
'latitude' : json_data[s]["lat"],
'longitude' : json_data[s]["lng"],
'status' : json_data[s]["status"]["online"],
'address' : json_data[s]["address"],
'reward_scale' : json_data[s]["reward_scale"]
})
json.dump(result, REFINED, ensure_ascii=False, indent=4)
我正在尝试将此输出转换为正确的 JSON 格式。不幸的是,这并没有真正解决。来自 API 拉取的所有数据都存储在一个列表中,然后我读取该列表以优化它并只获取我需要的数据。
def refine_data():
with open("api-pull.json", encoding='utf-8') as json_file:
json_data = json.load(json_file)
print('JSON loaded correctly')
with open('REFINEDapi-pull.json', 'w', encoding='utf-8') as REFINED:
for s in range(len(json_data)):
if 'lat' in json_data[s] and 'lng' in json_data[s]: #if coordinates exist
json.dump({
'name' : json_data[s]["name"],
'latitude' : json_data[s]["lat"],
'longitude' : json_data[s]["lng"],
'status' : json_data[s]["status"]["online"],
'address' : json_data[s]["address"],
'reward_scale' : json_data[s]["reward_scale"]
}, REFINED, ensure_ascii=False, indent=4)
我当前输出的小样本:
我要完成的示例:
您应该做的是将您创建的 dict
附加到列表,然后 json.dump()
将单个列表附加到文件:
def refine_data():
with open("api-pull.json", encoding='utf-8') as json_file:
json_data = json.load(json_file)
print('JSON loaded correctly')
with open('REFINEDapi-pull.json', 'w', encoding='utf-8') as REFINED:
result = [] # start a list here
for s in range(len(json_data)):
if 'lat' in json_data[s] and 'lng' in json_data[s]: #if coordinates exist
result.append({
'name' : json_data[s]["name"],
'latitude' : json_data[s]["lat"],
'longitude' : json_data[s]["lng"],
'status' : json_data[s]["status"]["online"],
'address' : json_data[s]["address"],
'reward_scale' : json_data[s]["reward_scale"]
})
json.dump(result, REFINED, ensure_ascii=False, indent=4)