从lis写入json文件

2024-10-03 04:25:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下列表数据要保存在json文件中,以便以后访问:

data = [{"nomineesWidgetModel":{"title":"","description":"",  
"refMarker":"ev_nom","eventEditionSummary":{"awards":[{"awardName":"Oscar","trivia":[]}]}}}]

如果保存为txt:

for item in data:
    with open('./data/awards.txt', 'w', encoding='utf-8') as f:
        f.write(', '.join(str(item) for item in data))

Output:
{"nomineesWidgetModel":{"title":"","description":"","refMarker":"ev_nom", 
 "eventEditionSummary":{"awards":[{"awardName":"Oscar","trivia":[]}]}}}

但我在Jupyter笔记本中打开文件时出错

如果另存为json

for item in data:
    with open('data.json', 'w', encoding='utf-8') as f:
        json.dump(item, f, ensure_ascii=False, indent=4)

Output with extra backslash:
"{\"nomineesWidgetModel\":{\"title\":\"\",\"description\":\"\",\"refMarker\":\"ev_nom\", 
 \"eventEditionSummary\":{\"awards\":[{\"awardName\":\"Oscar\",\"trivia\":[],}]}}

有没有一种更简单的方法可以做到这一点,而不必导入文件并替换额外的斜杠


Tags: 文件jsondatatitledescriptionitemnomev
2条回答

多亏了上面的@Alexander解释,我能够将我所抓取的内容保存在dict中,而不是列表中,然后在迭代页面时保存为json:

with open('data.json', 'a') as file:
            json.dump(data, file, indent=1)

像往常一样使用json

import json

data = [{"nomineesWidgetModel":{"title":"","description":"", "refMarker":"ev_nom","eventEditionSummary":{"awards":[{"awardName":"Oscar","trivia":[]}]}}}]

with open('data.json', 'w') as f:
    json.dump(data, f, indent=4)

相关问题 更多 >