【问题标题】:Is it possible to ask for keys from TinyDB是否可以向 TinyDB 索取密钥
【发布时间】:2014-11-28 23:17:22
【问题描述】:

如何找出 tinydb 数据库包含的内容,有点像在 SQL 中使用DESCRIBE name_of_table; 请求表的列或在字典上调用 keys()。

一般来说,当您不太确定 Tiny Db 数据库包含什么内容时,我正在寻找有关如何检查 Tiny Db 数据库的提示。

【问题讨论】:

    标签: python tinydb


    【解决方案1】:

    Tinydb 完全适合内存,因此可以调用 .all(),获取数据并进行一些统计。下面是转储每个文档类型的每个表的 db 结构的代码,由键集定义:

    from tinydb import TinyDB
    from collections import Counter
    
    db = TinyDB('db.json')
    
    for table in db.tables():
        contents = db.table(table).all()
    
        schema = Counter(frozenset(doc.keys()) for doc in contents)
    
        print('table %s (documents %d):' % (table, sum(schema.values())))
        for fields, count in schema.iteritems():
            print('  document (count %d):' % count)
            print('\n'.join('    %s' % field for field in fields))
    

    样本输出:

    table _default (documents 36):
      document (count 15):
        foo
        bar
      document (count 21):
        int
        char
    

    【讨论】:

    • 如果你知道你只有一种文档类型,你总是可以像TinyDB('friends.json').table('_default').all()[0].keys()这样快速修改一下
    猜你喜欢
    • 2019-07-19
    • 2019-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多