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

3 投票
2 回答
11079 浏览
提问于 2025-04-16 02:33

我想把一个列表写入一个文件,然后再把这个文件的内容读回到一个列表里。

我可以用simplejson把列表写入文件,代码如下:

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

现在,我想把文件的内容读回来,我用的是:

file_contents = simplejson.load(f)

不过,我想文件的内容是以json格式存储的。有没有办法把它转换成列表呢?

谢谢你。

2 个回答

-1

.read_file.write_file 这两个选项在 Unipath 这个工具里,真的让事情变得简单多了。

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替代前两行的话)和你观察到的结果不一致,那你就发现了一个bug,所以很重要的是要报告你使用的Python和simplejson的版本,以及你得到的具体错误信息,连同错误追踪信息(编辑你的问题,添加这些显然很重要的信息!)。

撰写回答