我有一个Python字典,其中包含一些键/值整数,其他字符串。
我正在寻找一种将此词典存储为单个文件的方法,具有以下条件:
我尝试了以下解决方案,但没有成功。有没有办法做到这一点,最好没有额外的存储要求/操作?
的Json
为值保留类型敏感度,但不保留键:
import json
d = {'key1': 1, 2: '1'}
with open(loc2, 'w') as fp:
json.dump(d, fp, indent=4)
with open(loc2, 'r') as fp:
d = json.load(fp)
{'2': '1', 'key1': 1}
HDF5
HDF5数据集名称必须是字符串,因此这与Json具有相同的问题:
import h5py
f = h5py.File('file.h5', 'w', libver='latest')
for k, v in d.items():
f.create_dataset(str(k), data=v)
f.close()
答案 0 :(得分:3)
您可以使用Yaml。安装pip install pyyaml
。
import yaml
data = {
'key1': 1,
1: 2
}
with open('data.yml', 'w') as outfile:
yaml.dump(data, outfile, default_flow_style=False)
输出文件:
1: 2
key1: 1
阅读文件:
with open("data.yml", 'r') as stream:
data = yaml.load(stream)
print data[1] # 2
答案 1 :(得分:1)
您可以将文件写为字符串
>>> file = open('file.txt', 'w')
>>> file.write(str({'key1': 1, 2: '1'}))
然后使用ast.literal_eval
>>> import ast
>>> ast.literal_eval(file.read())
>>> {'key1': 1, 2: '1'}