Python 从列表中写入json文件
我有以下列表数据要保存在json文件中,以便以后访问:Python 从列表中写入json文件,python,json,Python,Json,我有以下列表数据要保存在json文件中,以便以后访问: data = [{"nomineesWidgetModel":{"title":"","description":"", "refMarker":"ev_nom","eventEditionSummary":{"awards":[{"awardName":"Oscar","trivia":[]}]}}}] 如果另存为txt: for item in data: with open('./data/awards.txt', 'w
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\":[],}]}}
有没有一种更简单的方法可以做到这一点,而不必导入文件并替换额外的斜杠?多亏了上面的@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)
我认为该计划的运作符合预期。这个列表不是字典列表,而是字符串列表,这可能就是它们被转义的原因。在任何情况下,我很确定您都可以
json.dump()
完成整个过程,无需迭代。其他常规提示,您可以在文件的上下文管理器中移动循环。你能分享一下你在Jupyter笔记本中打开它时遇到的错误吗?谢谢你的解释!我的评论有点夸张,但要真正解决这个问题,这里最重要的是只需将json.dump(data)
写入文件。不过,让我知道这是否有效,我不能完全肯定。稍后我会尝试写一个正确的答案,并给出更好的解释。