我习惯于使用 CSV 文件将数据导入和导出 Python,但这显然存在挑战。有没有简单的方法将字典(或字典集)存储在 JSON 或 pickle 文件中?
例如:
data = {}
data ['key1'] = "keyinfo"
data ['key2'] = "keyinfo2"
我想知道如何保存它,然后如何重新加载它。
原文由 mike 发布,翻译遵循 CC BY-SA 4.0 许可协议
我习惯于使用 CSV 文件将数据导入和导出 Python,但这显然存在挑战。有没有简单的方法将字典(或字典集)存储在 JSON 或 pickle 文件中?
例如:
data = {}
data ['key1'] = "keyinfo"
data ['key2'] = "keyinfo2"
我想知道如何保存它,然后如何重新加载它。
原文由 mike 发布,翻译遵循 CC BY-SA 4.0 许可协议
最小示例,直接写入文件:
import json
json.dump(data, open(filename, 'wb'))
data = json.load(open(filename))
或安全地打开/关闭:
import json
with open(filename, 'wb') as outfile:
json.dump(data, outfile)
with open(filename) as infile:
data = json.load(infile)
如果要将其保存在字符串而不是文件中:
import json
json_str = json.dumps(data)
data = json.loads(json_str)
原文由 agf 发布,翻译遵循 CC BY-SA 3.0 许可协议
4 回答4.4k 阅读✓ 已解决
4 回答3.8k 阅读✓ 已解决
1 回答6k 阅读✓ 已解决
1 回答2.9k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
1 回答4.5k 阅读✓ 已解决
1 回答3.8k 阅读✓ 已解决
泡菜 保存:
有关
protocol
参数的更多信息,请参阅 pickle 模块文档。泡菜 负荷:
JSON 保存:
提供额外的参数,例如
sort_keys
或indent
,以获得漂亮的结果。参数 _sortkeys 将按字母顺序对键进行排序,而 indent 将使用indent=N
空格缩进您的数据结构。JSON 加载: