[英]Need a Python script with MySQl : read value from csv, fetch in db and write it in another file
我是Python脚本的新手。 我正在使用Python 3,并希望在以下情况下编写脚本。
1个csv文件具有2k条记录,仅存在1列。
Eg :
Name
Abc
def
Ghi
我想将这些字符串存储在列表中,并使用它们使用for循环逐一使用MySQL将它们提取到表中。
在阅读器中说行:
query=("select * from table where name=%s", (row)) name_list =cursor. Fetchall()
现在再次将传入记录存储在name_list中之后,我想将它们写入CSV文件中
如果不清楚,请告诉我。
感谢您的宝贵帮助。
问候,Sukumar
更新
下面是我尝试过的东西。 但是我在数据类型转换中面临问题。 该查询正在询问字符串值,但当前值是字节。 是全新的,所以请忽略是否出了问题
import csv
import MySQLdb
db = MySQLdb.connect("localhost", "root", "usr_name", "pwd")
cursor = db.cursor()
with open("input_names.csv") as f:
reader = csv.reader(f)
for row in reader:
name_list = list(reader)
query = ("select * from where name=%s", (i))
cursor.execute(query)
details_list = cursor.fetchall()
db.close()
details = open("output.csv",'wb')
wr = csv.writer(details, dialect='excel')
for item in details_list:
wr.writerow(item)
import pandas as pd
names_df = pd.read_csv('names.csv')
names_lst = list(names_df['names])
sql_df = pd.DataFrame()
for names in names_lst:
sql_df = sql_df.append(pd.read_sql('select * from table where name =' + names, con = db_conn_params)
根据您提供的信息,我假设了两种情况1)data.csv文件中的“名称”列下存在数据
Name
-----
abc
def
ghi
2)您需要将数据写入表中3)从表中检索数据并需要将其写入CSV文件
我已经使用sqlite数据库来完成工作,请告诉我是否有帮助
import sqlite3
conn=sqlite3.connect('test.db')
print 'Database created'
conn.execute('''CREATE TABLE SAMPLE (NAME TEXT NOT NULL);''')
print 'Table created'
#Reading input file
with open('D:\Users\pankaj-m\Desktop\Stack overflow questions\data.csv','rb') as f:
reader=csv.reader(f)
for row in reader:
print row
name_list=list(reader)
#writing to table
for item in name_list:
conn.execute('INSERT INTO SAMPLE VALUES (?)',item)
conn.commit()
conn.close()
#Reading from table and writing to file
conn=sqlite3.connect('test.db')
cur=conn.cursor()
cur.execute("select * from SAMPLE")
cursor=cur.fetchall()
with open('D:\Users\pankaj-m\Desktop\Stack overflow questions\data_output.csv','wb') as f1:
writer=csv.writer(f1)
for row in cursor:
writer.writerow(row)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.