将Dictionary转换为String并返回python

时间:2018-04-17 04:31:30

标签: string python-3.x dictionary abstract-syntax-tree

我正在写一个字典到一个文件来保存存储在其中的数据。当我读取文件并尝试将其转换回来时,它会转换为列表。我添加了print(type())来查看它进入文件的类型以及它出现的时间。

    import ast
    f = open("testfile.txt", "a+")
    print (type(dic1))
    f.write(str(dic1.items()) + "\n")
    f.close()

这是我把它写到文件

    ([('people', '1'), ('date', '01/01/1970'), ('t0', 'epoch'), ('time', '0'), ('p0', 'Tim Berners-Lee'), ('memory', 'This is the day time was created')])

这就是书面文件中的样子。

    loadDict = ast.literal_eval(x)
    print (type(loadDict))

这是尝试转换回字典时的代码

1 个答案:

答案 0 :(得分:0)

尝试使用pickle,它是存储和加载python对象的首选方式:

存储:

import pickle 
with open("testfile.txt", "w+") as f:
    pickle.dump(dic1,f)

加载:

import pickle 
with open("testfile.txt", "r+") as f:
    dic1 = pickle.load(f)

如果要在列表中保存多个对象,可以将列表保存到文件中,然后只需从文件中加载列表,添加要添加到其中的内容,然后再次保存