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

发布于 2024-09-13 13:25:21 字数 305 浏览 6 评论 0原文

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

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

现在要读回文件,但是

file_contents = simplejson.load(f)

,我猜 file_contents 是 json 格式。有什么方法可以将其转换为列表吗?

谢谢。

I would like to write a list to a file and read back the contents of the file into a list.
I am able to write the list to the file using simplejson as follows:

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

Now to read the file back i do

file_contents = simplejson.load(f)

But, i guess file_contents is in json format. Is there any way to convert it to a list ?

Thank You.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

过潦 2024-09-20 13:25:21
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< 的版本至关重要/code> 您正在使用的错误以及您收到的错误,并完成回溯(编辑您的 Q 以添加此信息 - 显然至关重要 - 信息!)。

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

is indeed reloading the data exactly as you specify. What may be confusing you is that all strings in JSON are always Unicode -- JSON (like Javascript) doesn't have a "byte string" data type distinct from "unicode".

Edit I don't have the old simplejson around any more (since its current version has become part of the standard Python library as json), but here's how it works (making json masquerade as simplejson in the hope of avoiding confusing you!-)...:

>>> 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']
>>> 

If this exact code (net of the first two lines if what you do instead is import simplejson of course;-) doesn't match what you observe, you've found a bug, so it's crucial to report what versions of Python and simplejson you're using and exactly what error you get, complete with traceback (edit your Q to add this -- obviously crucial -- info!).

清眉祭 2024-09-20 13:25:21

Unipath.read_file.write_file 选项真的让这变得简单。

The .read_file and .write_file options for Unipath really make this simple.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文