将字典保存为 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