2017-06-20 4 views
2

J'ai essayé de créer plusieurs tables dans une table en utilisant TinyDB. Voici un site Web pour vous aider à comprendre ce qu'est TinyDb (TinyDB PDF). Le fichier PDF n'a pas montré comment insérer plusieurs tables dans une, une des données multiples dans une table.Comment insérer plusieurs tables dans une table en utilisant TinyDB?

je comptais le fichier JSON pour ressembler à ceci:

"MASTER TABLE": 
{ 
    {"TABLE 1": {"1": {"Name": "Alice", "Age": 19}} 
    {"TABLE 2": {"1": {"Name": "John", "Age": 12}}, 
} 

Cependant, le problème est que je ne suis pas sûr de savoir comment insérer Table1 et Table2 dans la table de fichier maître. Donc ça m'a donné l'erreur que table1 n'est pas un élément. Je sais que ce n'est pas un élément mais je n'ai aucune idée de la façon de le réparer, de mettre les deux tables sous la table des fichiers maîtres. J'apprécierais toute aide.

Voici mon code:

from tinydb import TinyDB, Query 
from tinydb import TinyDB, where 
import json 

with open("/home/pi/Desktop/jsontest/test.json", 'w+'): 
    table1 = TinyDB('/home/pi/Desktop/jsontest/test.json') 
    table1 = table1.table('TABLE 1') 
    table1.insert_multiple([{'Name' : 'Alice' , 'Age' : 19}]) 

    table2 = TinyDB('/home/pi/Desktop/jsontest/test.json') 
    table2 = table2.table('TABLE 2') 
    table2.insert_multiple([{'Name' : 'john' , 'Age' : 12}]) 

    overall = TinyDB('/home/pi/Desktop/jsontest/test.json') 
    overall = overall.table('MASTER TABLE') 
    overall.insert([table1]) 

Répondre

1

Il n'a pas de sens d'insérer des tables dans une autre table?

from tinydb import TinyDB 

db = TinyDB('db.json') 

table1 = db.table('TABLE 1') 
table1.insert({'Name' : 'Alice' , 'Age' : 19}) 

table2 = db.table('TABLE 2') 
table2.insert({'Name' : 'john' , 'Age' : 12}) 

Donne db.json contenant:

{ 
    "_default": {}, 
    "TABLE 1": {"1": {"Name": "Alice", "Age": 19}}, 
    "TABLE 2": {"1": {"Name": "john", "Age": 12}} 
} 

Je pense que votre JSON est incorrect, vous ne pouvez pas la syntaxe (clé, valeur) ici:

"MASTER TABLE": 
{ 
    {"TABLE 1": {"1": {"Name": "Alice", "Age": 19}} 
    {"TABLE 2": {"1": {"Name": "John", "Age": 12}}, 
} 

Vous pouvez faire que:

from tinydb import TinyDB 

db = TinyDB('db.json', default_table='MASTER TABLE') 

master_table = db.table('MASTER TABLE') 
master_table.insert({"TABLE 1": {"1": {"Name": "Alice", "Age": 19}}}) 
master_table.insert({"TABLE 2": {"1": {"Name": "John", "Age": 12}}}) 

Vous obtenez db.json contenant:

{ 
    "MASTER TABLE": { 
     "1": {"TABLE 1": {"1": {"Name": "Alice", "Age": 19}}}, 
     "2": {"TABLE 2": {"1": {"Name": "John", "Age": 12}}} 
    } 
} 

Mais il est étrange.

+0

c'est fait ....... – glegoux