dictionary 将python字典转换为字符串并返回



4 Answers

如果你的字典不是太大,也许str + eval可以完成这项工作:

dict1 = {'one':1, 'two':2, 'three': {'three.1': 3.1, 'three.2': 3.2 }}
str1 = str(dict1)

dict2 = eval(str1)

print dict1==dict2

如果源不可信,您可以使用ast.literal_eval而不是eval来获得额外的安全性。

python dictionary serialization

我正在编写一个将数据存储在字典对象中的程序,但是这些数据需要在程序执行过程中的某个时刻保存,并在程序再次运行时加载回字典对象。 如何将字典对象转换为可写入文件并加载回字典对象的字符串? 这将有望支持包含字典的字典。




使用pickle模块将其保存到磁盘并稍后加载。




我认为你应该考虑使用提供持久性文件支持字典式对象的shelve模块。 使用“真正”字典很容易,因为它几乎可以透明地为程序提供一些可以像字典一样使用的程序,而无需将其明确地转换为字符串,然后写入文件(或副本)反之亦然)。

主要区别在于需要在第一次使用前先open() ,然后在完成时close() ,并根据所使用的writeback选项完成(并可能sync()它。 任何“shelf”文件对象create都可以包含常规字典作为值,从而允许它们在逻辑上嵌套。

这是一个简单的例子:

import shelve

shelf = shelve.open('mydata')  # open for reading and writing, creating if nec
shelf.update({'one':1, 'two':2, 'three': {'three.1': 3.1, 'three.2': 3.2 }})
shelf.close()

shelf = shelve.open('mydata')
print shelf
shelf.close()

输出:

{'three': {'three.1': 3.1, 'three.2': 3.2}, 'two': 2, 'one': 1}



使用传统的方法而不是使用简单的库。 这对我有效

dict = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'}
d=" " 
for  i in dict:
 a=i
 b=dict[i]
 c=i+":"+dict[i]
 d=d+c+'\n'

print d 





Related