存储Python字典

2024-04-18 03:29:18 发布

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

我习惯于使用.csv文件在Python中输入和输出数据,但这显然是一个挑战。对于在json或pck文件中存储字典(或字典集)的简单方法有何建议?例如:

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

我想知道如何保存这个,然后如何加载回。


Tags: 文件csv数据方法jsondata字典建议
3条回答

例如,直接写入文件:

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)

另请参见加速包ujson。 https://pypi.python.org/pypi/ujson

import ujson
with open('data.json', 'wb') as fp:
    ujson.dump(data, fp)

Pickle保存:

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参数的其他信息,请参见the pickle module documentation

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这样的额外参数以获得一个漂亮的结果。参数sort-keys将按字母顺序对键进行排序,而indent将用indent=N空格缩进数据结构。

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

JSON加载:

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

相关问题 更多 >