我想将列表写入文件并将文件的内容读回列表。我可以使用 simplejson 将列表写入文件,如下所示:
f = open("data.txt","w")
l = ["a","b","c"]
simplejson.dump(l,f)
f.close()
现在读回文件我做
file_contents = simplejson.load(f)
但是,我猜 file_contents 是 json 格式。有什么办法可以将其转换为列表?
谢谢你。
我想将列表写入文件并将文件的内容读回列表。我可以使用 simplejson 将列表写入文件,如下所示:
f = open("data.txt","w")
l = ["a","b","c"]
simplejson.dump(l,f)
f.close()
现在读回文件我做
file_contents = simplejson.load(f)
但是,我猜 file_contents 是 json 格式。有什么办法可以将其转换为列表?
谢谢你。
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 以添加此 - 显然至关重要 - 信息!)。
Unipath的.read_file
和.write_file
选项确实使这变得简单。