View Full Version : [python] import file json dabatase mysql
s.pacciani
16-08-2013, 16:31
Salve, vi scrivo perchè ho un problema con python. Non riesco ad importare nel database mysql il file json .js che ho scaricato dal mio mysql server. Come devo fare?
ecco qui il mio file json:
[
{"nome": "XXXX", "cognome": "YYYY", "filiale": 0},
{"nome": "ZZZZ", "cognome": "WWWW", "filiale": 0}
]
Che cosa sbaglio? il contenuto json è corretto? dovre posso trovare un pò di documentazione?
Ho trovato questa documentazione
http://stackoverflow.com/questions/2835559/parsing-values-from-a-json-file-in-python
ma non riesco a capirla.
Help Me
Il file che hai scaricato dal webserver probabilmente non è uscito direttamente da MySQL, ma è stato elaborato da uno script che lo ha convertito in JSON. Che io sappia, MySQL non supporta nativamente JSON. Probabilmente ci son plugins che lo fanno.
In ogni caso in Python, con l libreria json, è molto semplice muover dati da/verso MySQL (dumps, loads).
s.pacciani
17-08-2013, 22:20
ok perfetto, quindi sto sbagliando l'esportazione del file.
Io ho usato questo codice:
import MySQLdb
import json
import collections
try:
# Connessione a mysql e al database
conn=MySQLdb.connect(host="boxserver", user='root', passwd='unifi2013', db='anagrafica')
cursor=conn.cursor()
print "Operazione SELECT"
cursor.execute("""
SELECT nome, cognome,filiale
FROM anagrafica
WHERE filiale=0
""")
#stampo su video il risultato della select
rows = cursor.fetchall ()
for row in rows:
print row
# Convert query to row arrays
rowarray_list = []
for row in rows:
t = (row[0], row[1],row[2])
rowarray_list.append(t)
j = json.dumps(rowarray_list)
rowarrays_file = 'anagrafica_rowarrays.js'
f = open(rowarrays_file,'w')
print >> f, j
# Convert query to objects of key-value pairs
objects_list = []
for row in rows:
d = collections.OrderedDict()
d['nome'] = row[0]
d['cognome'] = row[1]
d['filiale'] = row[2]
objects_list.append(d)
j = json.dumps(objects_list)
objects_file = 'anagrafica_objects.js'
f = open(objects_file,'w')
print >> f, j
cursor.close()
conn.close()
except MySQLdb.Error, e:
print "Errore MySQL"
print "%s" % e.args[1]
s= raw_input("Premi invio per Uscire")
Dove sbaglio? mi potresti aiutare? che documentazione posso seguire? che consiglio mi puoi dare?
per il momento ho creato un database mysql molto semplice. Le tabelle sono: nome,cognome e filiale.
Vorrei capire come funziona Json.
Se nativamente Mysql non lo supporta mi potrei creare dei cicli che mi permettono di interpretare il file. Che ne dici?
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.