2017-04-26 4 views
1

私はpython 3.xを使って.txtファイルにmysqlデータをインポートしようとしていますが、私は何かが欠けているようです。期待されるのは、データを表形式/列形式のファイルにインポートする必要があるということです。解決策を得るために最善を尽くすことを試みましたが、私は必要なものが得られていません。 print(result)が実行されたときに、端末のpythonでpython 3.5を使ってmysqlデータを.txtファイルにインポートするには?

import pymysql.cursors 
import pymysql 
import sys 
import os 

# Connect to the database 
connection = pymysql.connect(host='localhost', 
          user='root', 
          password="", 
          db='jmeterdb', 
          cursorclass=pymysql.cursors.DictCursor) 

try: 
    with connection.cursor() as cursor: 
     # Select all records 
     sql = "select * from emp" 
     cursor.execute(sql) 

    # connection is not autocommit by default. So you must commit to save 
    # your changes. 
    result = cursor.fetchall() 
    newfile = open("db-data.txt","a+") 
    for row in result: 
     newfile.writelines(row) 

    print(result) 
    newfile.close() 

finally: 
    connection.close() 

は私のデータを示しているが、db-data.txtファイルで、それは列名のみを示しています

以下は私のコードです。

期待される結果:

Column_Name1 Column_Name2 Column_Name3 
data1  data2  data3 
data1  data2  data3 
+1

' writelines()、あなたが使用する必要があります'write(row +" \ n ")' –

+1

http://stackoverflow.com/questions/12377473/python-write-versus-writelines-and-concatenated-strings書き込み線の代わりに書き込みを使用してください。 –

+0

私はちょうどこのコードを使用してテーブル構造を得ました: '結果行: newfile.write(" \ t ".join(row))'しかし、sqlのデータはありません。 –

答えて

0

このコードは、上記の質問のために期待される出力を生成している以下の通りです: `行の配列があると仮定し

import pymysql.cursors 
import pymysql 
import sys 
import os 

# Open database connection 
connection = pymysql.connect(host='localhost', 
          user='root', 
          password="", 
          db='jmeterdb', 
          cursorclass=pymysql.cursors.DictCursor) 
# prepare a cursor object using cursor() method 
with connection.cursor() as cursor: 
# Prepare SQL query to select a record into the database. 
    try: 

     sql = "SELECT * FROM EMP order by ename asc" 
# Execute the SQL command 
     cursor.execute(sql) 
# Fetch all the rows in a list of lists. 
     results = cursor.fetchall() 
     # print(results) 
     if results: 
      newfile = open("db-data.txt","a+") 
      newfile.write('ename'+"\t"+'jobs'+"\t"+"salary"+"\t"+'comm'+"\t"+'manager'+"\t"+'hiredate'+"\t"+'deptno'+"\t"+'empno'+"\n") 

     for index in results: 
      ltr=[] 
      ltr.append(index['ename']) 
      ltr.append(index['job']) 
      ltr.append(index['sal']) 
      ltr.append(index['comm']) 
      ltr.append(index['mgr']) 
      ltr.append(index['hiredate']) 
      ltr.append(index['deptno']) 
      ltr.append(index['empno']) 
      lenltr=len(ltr) 
      for i in range(lenltr): 
       newfile.write('{}'.format(ltr[i])) 
       newfile.write("\t") 
       print(ltr[i]) 
      newfile.write("\n") 


# # Now print fetched result 
     #print("ename=%s,empno=%d,job=%d,hiredate=%d,comm=%s,sal=%d,deptno=%d,mgr=%d" %(ename, empno, job, hiredate, comm, sal, deptno, mgr)) 
     # print(index) 
    except: 
     print ("Error: unable to fecth data") 
# disconnect from server 
connection.close() 
newfile.close() 
関連する問題