2014-11-28 2 views
0

Как узнать, что содержит база данных tinydb, вроде как запрашивать колонки таблицы в SQL с DESCRIBE name_of_table; или вызовами ключей() в словаре.Можно ли запросить ключи от TinyDB

В общем, я ищу советы по изучению базы данных Tiny Db, когда вы не совсем уверены, что она содержит.

ответ

3

Tinydb полностью помещается в память, поэтому нормально звонить .all(), получать данные и делать некоторые статистические данные. Вот код, который сбрасывает структуру БДА в соответствии с таблицы по типу документа, определяется набором ключей:

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 
+0

Если вы знаете, что есть только один типа документа, вы могли бы всегда просто сделайте быстрый взлом, например 'TinyDB ('friends.json'). table ('_ default'). all() [0] .keys()' – Hexatonic

Смежные вопросы