【问题标题】:Saving Dictionary as Python Script将字典保存为 Python 脚本
【发布时间】: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保存到文件中。

标签: python dictionary copy save write


【解决方案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 内核中运行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-12-15
      • 2020-02-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-16
      相关资源
      最近更新 更多