gpt4 book ai didi

python - 什么是 Python 的良好临时存储和传输格式?

转载 作者:太空宇宙 更新时间:2023-11-03 15:25:27 25 4
gpt4 key购买 nike

我正在用 Python 编写一个脚本,它将吐出一些组织为字典列表的数据:

[{'name': 'first_thing', 'color': 'blue', 'flavour': 'watermelon' },
{'name': 'second_thing', 'color': 'red' },
{'name': 'third_thing', 'color': 'blue', 'size': 'huge!' }]

我正在尝试确定一种将这些数据存储在文件中的方法。我的考虑:

  1. 我希望它易于阅读和编写,这样我就可以将数据加载回脚本并进一步操作它。
  2. 我希望它是一种非特定于 Python 的格式。也许以后我会想在 PHP 或其他东西中使用这些数据,谁知道呢?
  3. 我希望它是一种易于附加更多数据的格式。如果我的文件有一个包含 1000 个我的小字典项目的列表,我不想将所有 1000 个加载到内存中只是为了在末尾添加一个项目。

我的第一个尝试是使用 Pickle,它满足简单的标准,但它依赖于 Python,我必须先取消 pickle,附加,然后再 pickle。

其他我认为可行的格式(我反对):

  • JSON(附加会很烦人,也许)
  • 搁置(特定于 python)
  • CSV(类似于胶带,不是那么优雅,但它可能会起作用)
  • 某种轻型数据库,如 sqlite(这里可能太花哨了)

有人对这些格式或其他格式有异议吗?

最佳答案

Pickle 应该可以正常工作。直接存储字典(不在列表中)以使附加更容易:

>>> from pickle import dump, load
>>> f = open('stor.bin', 'w')
>>> dump(dict(a=1), f)
>>> dump(dict(b=2), f)
>>> dump(dict(c=3), f)
>>> f.close()

在后续 session 中,将另一个 dump() 直接附加到文件末尾:

>>> f = open('store.bin', 'a')
>>> dump(dict(d=4), f)
>>> f.close()

要阅读,只需重复执行 load() 直到到达文件末尾:

>>> f = open('stor.bin', 'r')
>>> load(f)
{'a': 1}
>>> load(f)
{'b': 2}
>>> load(f)
{'c': 3}
>>> load(f)
{'d': 4}
>>> load(f)

Traceback (most recent call last):
...
EOFError

关于python - 什么是 Python 的良好临时存储和传输格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7816113/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com