【问题标题】:Storing a nested dictionary of tuples in python在python中存储一个嵌套的元组字典
【发布时间】:2015-08-19 20:10:40
【问题描述】:

我有一个字典字典,它使用元组作为键和值。我想写这本字典并尝试过 json 和 pickle,但它们似乎都不起作用。有更好的选择吗?

https://github.com/jgv7/markov-generator/blob/master/sentence-generator.py

【问题讨论】:

  • 当您说“它们似乎都不起作用”时,您能准确描述一下您遇到的问题吗?
  • JSON 和 pickle 是非常流行的模块,只要您正确使用它们就可以正常工作。如果它们“不起作用”,问题就出在其他地方。
  • 在问题中包含您的代码;不要只是链接到代码。 尤其是不要编写在下次提交时会更改的代码(因为它只是指向master)。
  • 请在您的问题中包含minimal, complete, and verifiable example,而不是指向您的完整代码的链接,以重现您遇到的问题。

标签: python json dictionary tuples pickle


【解决方案1】:

json 期望 Key value 对的 key 是一个字符串或一个可以正确转换为字符串的数字。底线 - 不能在以元组为键的字典上执行 json.dumps。

pickle 应该可以工作,除非字典对象没有正确序列化。

【讨论】:

  • 感谢教育我!正如 BlackJack 指出的那样,我也错误地使用了 pickle,因此问题现在已解决。
  • 很高兴它为您解决了问题。好像您遇到了异常。我不好假设。干杯!!
【解决方案2】:

来自您的代码:

with open(filename, 'rb') as df:
    pickle.load(df)
print mapping

您没有将load() 调用的结果绑定到名称,因此该行没有任何效果(除了消耗处理器时间和移动文件指针)。那应该是:

with open(filename, 'rb') as df:
    mapping = pickle.load(df)
print mapping

【讨论】:

  • 谢谢,二十一点!这正是问题所在。这是我第一次使用pickle,当然我使用的示例代码是错误的。
猜你喜欢
  • 1970-01-01
  • 2017-05-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多