将字典保存为 Python 脚本

Posted

技术标签:

【中文标题】将字典保存为 Python 脚本【英文标题】:Saving Dictionary as Python Script 【发布时间】:2021-08-08 03:53:07 【问题描述】:

我对 Python 有点陌生。我有一个很长的过程来计算一个字典,其中键是浮点数上的元组,值是浮点数列表。我想多次运行同一个脚本,但只计算一次字典。我还希望能够访问其他脚本上的字典。我的想法是计算字典并将其写入另一个 .py 文件,我可以在我想要的任何脚本中导入该文件。我发现了很多关于将数据写入 txt 文件和读取 txt 文件的内容,但是有没有直接写入另一个 .py 文件的快速方法?也就是说,我想要这样的东西:

def Complicated_Process():

      Compute some dictionary D
      write D to file.py
import file.py

D = the dictionary in file.py

【问题讨论】:

将您的数据作为JSON保存到文件中。 【参考方案1】:

我会看一下 pickle 包,它带有 python,所以不需要安装任何新包。 这使您可以将 dict 保存到文件中,并在其他脚本中使用。

# Save a dictionary into a pickle file.
import pickle
    
favorite_color = "lion": "yellow", "kitty": "red"
    
pickle.dump(favorite_color, open("save.p", "wb"))

# Load the dictionary back from the pickle file.
    
favorite_color = pickle.load(open("save.p", "rb"))
# favorite_color is now "lion": "yellow", "kitty": "red"

https://wiki.python.org/moin/UsingPickle

【讨论】:

【参考方案2】:

我认为将数据保存为JSON 是安全的选择,但是JSON 仅支持字符串作为键,并且您有一个浮点数元组。你可以在 python 模块之间导入变量,所以在compute.py 你有:

def complicated_computation():
    ...
    return data
MY_DATA = complicated_computation()

然后从你的其他模块有:

from compute import MY_DATA
...

如果您从多个地方执行此操作,您应该只计算一次,前提是您仍在同一个 python 内核中运行。

【讨论】:

以上是关于将字典保存为 Python 脚本的主要内容,如果未能解决你的问题,请参考以下文章

如何将 Python 字典保存为 NodeJS 字典? [复制]

将字典保存为 pyspark 数据框并加载它 - Python、Databricks

将5个字典组合在一起保存为txt文件python

保存python字典供以后使用[关闭]

将字典保存到文件(numpy 和 Python 2/3 友好)

如何将字典列表保存到文件中?