2017-10-09 2 views
1

J'ai un script pour envoyer une requête à MySQL et écrire le résultat dans le fichier. La question que j'ai est la sortie de texte ressemble à ceci:Convertir un tuple en liste de chaînes avec un élément par ligne

(u'DB11A-DBD27', u'DB11A-DBD28')(u'DB62A-DBD1', u'DB62A-DBD2')(u'DB62A-DBD11', u'DB62A-DBD12')... 

Et je voudrais à ressembler à ceci:

DB11A-DBD27 
DB11A-DBD28 
DB62A-DBD1 
DB62A-DBD2 
DB62A-DBD11 
DB62A-DBD12 
... 

Voici le code:

cnx = connectDB.cnx 
query = "SELECT DB-P1,DB-P2 FROM distribution" 

cur = cnx.cursor() 
sql = cur.execute(query) 

results = cur.fetchall() 
f = open('Master.txt', 'w') 
for row in results: 
    row = str(row) 
    print "".join(row) 
    f.write(row) 
f.close() 

J'ai essayé strip() mais a continué à obtenir des erreurs de type. Est-ce que quelqu'un sait comment je peux convertir ces tuples à la liste de chaîne avec chaque élément dans une nouvelle ligne comme indiqué ci-dessus?

+0

Qu'est-ce qu'il y a dans 'results'? Pouvez-vous imprimer la sortie des résultats? On dirait que vous devez peut-être besoin de déballer à nouveau? – Bahrom

+1

On dirait que vous voulez juste sélectionner db-p1 union tout db-p2 ... 'CHOISISSEZ DB-P1 FROM distribution u nion tous SELECT DB-P2 FROM distribution' – xQbert

Répondre

1

Je pense que vous avez juste besoin d'un syndicat ici et deux sélections.

Substituez union pour u nion ci-dessous. Il ne me laissera pas enregistrer avec union. Cependant, si l'ordre est important, nous pouvons avoir besoin de connaître la clé unique sur la table afin que nous puissions commander de façon appropriée.

+0

J'ai ajouté union et il a divisé les tuples mais mon fichier de sortie toujours le même format. Comment puis-je me débarrasser de u,() et les enregistrer 1 article par ligne? – Damon

+0

Avez-vous besoin du 'print" ".join (row)' la boucle for ne peut-elle pas être 'f.write (str (row))' maintenant? puisque nous avons seulement 1 valeur par rangée? Je ne suis en aucun cas un gourou python. SQL est mon bailliage. Vous pouvez également voir une question similaire: https://stackoverflow.com/questions/6182964/why-is-parenthesis-in-print-voluntary-in-python-2-7 – xQbert

+0

Après un examen plus approfondi: Je suis assez sûr que vous sont après cela: https://stackoverflow.com/questions/20618640/how-to-write-to-file-without-parenthesis-in-python en utilisant la sortie csv; ou en changeant la ligne 'str (row)' pour ce qui est suggéré. – xQbert