2016-06-06 12 views
0

Ich habe Probleme, meine Abfrage zu arbeiten. Ich habe eine JSON-Datei mit über 80.000 Datenzeilen. Da ich so viele Probleme, die wurde schnitt ich das Dokument auf drei Linien nur um zu sehen, ob ich die Daten in bekommen, bevor ich die vollen 80k Linien versuchen:Importieren von JSON-Datendatei in PostgreSQL mit Python und Psycopg2

Import psycopg2 
import io 
readTest1 = io.open("C:\Users\Samuel\Dropbox\Work\Python and Postgres\test1.json", encoding = "utf-8") 
readAll = readTest1.readlines() 

Ich habe online gesehen, dass Leseleitungen mit nicht die beste Methode, aber es ist die einzige Methode, die ich kenne. Diese Methode liest die drei Zeilen in der Datei. Ich bin mir nicht sicher, aber ich habe damit gerechnet, dass es auch ein Array wird.

conn = psycopg2.connect("dbname = python_trial user = postgres") 
cur = conn.cursor() 
cur.execute("CREATE TABLE test4 (data json);") 

Erstellen Sie eine Tabelle, die JSON-Daten dauert nur:

cur.executemany("INSERT INTO test4 VALUES (%s)", readAll) 

den Fehler:

Traceback (most recent call last): 
File "<pyshell#13>", line 1, in <module> 
cur.executemany("INSERT INTO test4 VALUES (%s)", readAll) 
TypeError: not all arguments converted during string formatting 

Ich bin nicht ganz sicher, was ich falsch mache. Ich sehe auch "\ n", wenn ich drucke (readAll). Ich denke, dass das durch die Verwendung der readlines-Methode verursacht wird, und ich bin mir nicht sicher, ob das auch meine Abfrage durcheinander bringt. diese

+2

Schauen Sie sich die 'json' Bibliothek: https: //docs.python. org/3.4/library/json.html – Nicarus

Antwort

Verwandte Themen