【问题标题】:How can I create a nested value in TinyDB using python3?如何使用 python3 在 TinyDB 中创建嵌套值?
【发布时间】:2021-08-07 04:15:27
【问题描述】:

一个例子是这样的:

from tinydb import TinyDB, Query
from tinydb.operations import add

db = TinyDB('tinydb_practice.json')

db.insert({'Name':'Bella', 'Places':{}})
db.update(add('Places', {{'Country':'USA'}}))

for item in db:
  print(item)

我想要的结果是

{'Name':'Bella', 'Places':{{'Country':'USA'}}}

但我得到了这个错误

TypeError: unhashable type: 'dict'

TIA! :)

【问题讨论】:

    标签: python-3.x tinydb


    【解决方案1】:

    Places 应该是列表而不是字典(或集合):

    from tinydb import TinyDB, Query
    from tinydb.operations import add
    
    db = TinyDB('tinydb_practice.json')
    
    db.insert({'Name':'Bella', 'Places':[]})  # <- replace {} by []
    db.update(add('Places', [{'Country':'USA'}]))  # <- replace outer {} by []
    
    for item in db:
        print(item)
    

    输出:

    {'Name': 'Bella', 'Places': [{'Country': 'USA'}]}
    

    【讨论】:

    • 太棒了,谢谢!本可以发誓我尝试过这样做,但出错了。无论如何,这工作得很好! :D
    • 如果我的回答符合您的需要,请不要忘记accept my answer
    • 抱歉,我是堆栈溢出的新手,不知道我需要这样做:)
    猜你喜欢
    • 2020-01-29
    • 1970-01-01
    • 1970-01-01
    • 2012-11-20
    • 1970-01-01
    • 1970-01-01
    • 2018-07-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多