存储 Python 字典

新手上路,请多包涵

我习惯于使用 CSV 文件将数据导入和导出 Python,但这显然存在挑战。有没有简单的方法将字典(或字典集)存储在 JSON 或 pickle 文件中?

例如:

 data = {}
data ['key1'] = "keyinfo"
data ['key2'] = "keyinfo2"

我想知道如何保存它,然后如何重新加载它。

原文由 mike 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 477
2 个回答

泡菜 保存:

 try:
    import cPickle as pickle
except ImportError:  # Python 3.x
    import pickle

with open('data.p', 'wb') as fp:
    pickle.dump(data, fp, protocol=pickle.HIGHEST_PROTOCOL)

有关 protocol 参数的更多信息,请参阅 pickle 模块文档

泡菜 负荷:

 with open('data.p', 'rb') as fp:
    data = pickle.load(fp)


JSON 保存:

 import json

with open('data.json', 'w') as fp:
    json.dump(data, fp)

提供额外的参数,例如 sort_keysindent ,以获得漂亮的结果。参数 _sortkeys 将按字母顺序对键进行排序,而 indent 将使用 indent=N 空格缩进您的数据结构。

 json.dump(data, fp, sort_keys=True, indent=4)

JSON 加载:

 with open('data.json', 'r') as fp:
    data = json.load(fp)

原文由 Marty 发布,翻译遵循 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 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题