【问题标题】:How to set value in shelve如何在搁置中设置价值
【发布时间】:2021-01-25 11:16:50
【问题描述】:

我想将字典存储在搁置中,也想将数据放入其中。我该怎么做?

import shelve

s = shelve.open("test")
s['flag'] = {}

【问题讨论】:

    标签: python python-3.x shelve


    【解决方案1】:

    你不能直接编辑值,所以你必须更新一个副本然后重置它:

    import shelve
    
    s = shelve.open("test")
    s['flag'] = {}
    temp = s['flag']
    temp['foo'] = 'bar'
    s['flag'] = temp
    

    你做不到

    s['flag']['foo'] = 'bar'
    

    直接因为s['flag']返回一个副本

    【讨论】:

    • 为什么当我将烧瓶应用程序部署到 Heroku 时它不起作用?它给了我一个错误:_pickle.UnpicklingError: pickle data was truncated
    • @BhaveshMevada 我认为您的程序在搁置正确关闭之前终止,这会损坏它。在终止应用程序之前,请确保正确关闭您的搁置。你必须删除损坏的。
    【解决方案2】:

    在这里,我尝试将数据存储在搁置中,甚至进行更新。 它正在工作。 如果这不是你的问题。那么请详细说明

    import shelve
    
    s = shelve.open("test")
    s['flag'] = {"sda":11}
    data = s["flag"]
    print(data)
    s['flag'] = {"sda":12}
    data = s["flag"]
    print(data)
    s.close()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-20
      • 2010-09-05
      • 1970-01-01
      • 1970-01-01
      • 2011-03-05
      • 2018-01-08
      • 2018-01-15
      • 1970-01-01
      相关资源
      最近更新 更多