将列表写入文件并使用simplejson将内容读回列表

时间:2010-08-09 23:44:42

标签: python json simplejson

我想将一个列表写入文件,并将该文件的内容读回列表中。 我可以使用simplejson将列表写入文件,如下所示:

f = open("data.txt","w")
l = ["a","b","c"]
simplejson.dump(l,f)
f.close()

现在我要回读文件

file_contents = simplejson.load(f)

但是,我猜file_contents是json格式。有没有办法将其转换为列表?

谢谢。

2 个答案:

答案 0 :(得分:6)

with open("data.txt") as f:
  filecontents = simplejson.load(f)

确实正在按照您指定的方式重新加载数据。让您感到困惑的是,JSON中的所有字符串总是 Unicode - JSON(如Javascript)没有与“unicode”不同的“字节字符串”数据类型。

编辑我没有旧的simplejson了(因为它的当前版本已成为标准Python库的一部分json),但这里是如何它有效(让json伪装成simplejson,希望避免让你感到困惑! - )......:

>>> import json
>>> simplejson = json
>>> f = open("data.txt","w")
>>> l = ["a","b","c"]
>>> simplejson.dump(l,f)
>>> f.close()
>>> with open("data.txt") as f: fc = simplejson.load(f)
... 
>>> fc
[u'a', u'b', u'c']
>>> fc.append("d")
>>> fc
[u'a', u'b', u'c', 'd']
>>> 

如果这个确切的代码(前两行,如果你做的是import simplejson当然;-)与你观察到的不一致,你发现了一个错误,所以报告是至关重要的你正在使用什么版本的Python和simplejson以及你得到的错误,完成回溯(编辑你的Q来添加它 - 显然至关重要 - 信息!)。

答案 1 :(得分:-1)

Unipath.read_file.write_file选项真的很简单。