我试图在一个文件中存储许多变量。我尝试过JSON、pickle和shelve,但它们似乎都只接受一个变量
import shelve
myShelve = shelve.open('my.shelve')
myShelve.update(aasd,
basd,
casd,
dasd,
easd,
fasd,
gasd,
hasd,
iasd,
jasd)
myShelve.close()
还有泡菜
^{pr2}$我犯的错误大致是
TypeError: update() takes at most 2 positional arguments (11 given)
以及
TypeError: pickle.dumps() takes at most 2 positional argument (11 given)
我不确定除了使用数据库之外,是否还有其他存储变量的方法,但这比我目前所能说的有点过头了。在
编辑:我只是想了一种不同的方法来存储变量,但这有点奇怪,我想知道专家们对此有何看法。在
您可以保存一个包含变量定义的python代码的文件,例如
vars.py
,该文件由定义值的简单语句组成:然后将其加载到程序中,只需执行},就好像你已经输入了它们一样。在
from vars import *
操作,就可以定义x
和{原始正常答案如下。。。
有一种方法可以使用JSON将变量取回,而无需重新定义它们的名称,但必须首先创建变量字典。在
^{pr2}$现在要重新加载它们:
现在x和y是根据它们的字典条目定义的:
还有一种方法是使用变量定义。通过这种方式,您不必预先创建字典,但是当您重新加载变量时,您必须按照正确的顺序重新命名变量。在
以及输出:
使用
pickle
,一次转储一个对象。每次转储到该文件时,都会添加另一个“记录”。在现在,当您想取回数据时,可以使用
^{pr2}$pickle.load
从文件中读取下一个“记录”:或者,根据数据的类型,假设数据是
json
能够序列化的内容,则可以将其存储在json列表中:一次只能pickle一个变量,但它可以是
dict
或其他Python对象。您可以将多个变量存储在一个对象中并对该对象进行pickle。在相关问题 更多 >
编程相关推荐