[英]Insert List of tupels in mysql Db using python
我正在嘗試將從 csv 文件中獲得的帶有數字的元組列表插入到我的 MySQL 數據庫中。
我有代碼:
readcsv = pd.read_csv( "***********************.csv", skiprows=45, sep=";")
cols = str(readcsv.columns.values.tolist()).replace('[','').replace(']', '').replace('\'','`')
for i in range(0, readcsv.shape[0], 1):
values = str(readcsv.iloc[i:i+1].values.tolist()).replace('[', '(').replace(']', ')').replace('((', '(').replace('))', ')')
print(values)
conn = pymysql.connect(host='****', port=3306, user='root', passwd='*****', db='***')
cursor = conn.cursor()
rows = [values]
a = ','.join(map(str ,rows))
b = ','.join(map(str ,rows))
c =','.join(map(str ,rows))
d =','.join(map(str ,rows))
sql = "INSERT INTO csv_files.csv_file(ms, Power_in_W,Distance_in_mm,Force_in_N) VALUES ({},{},{},{})".format(a,b,c,d)
cursor.execute(sql)
conn.commit()
conn.close()
我已經在 mySQL 中用列 MS、Power_in_W、Distance_in_mm、Force_in_N 創建了一個數據庫。 但不知何故,我無法將 csv 中的數據插入其中。 因為錯誤:
pymysql.err.InternalError: (1241, '操作數應包含 1 列')
我用print(values)
得到的輸出是:
(1.0, 0.0, 0.0, 0.0), (2.0, 60.3, 960.0, 0.0), (3.0, 60.3, 964.0,0.0), (4.0, 60.3, 967.0, 0.0), (5.0, 61.89, 964.0, 0.0), (6.0, 61.89, 967.0, 0.0), (7.0, 13.69, 962.0, 0.0)
...
有誰知道我做錯了什么?
使用execute_many方法,並將值作為參數傳遞。
sql = "INSERT INTO csv_files.csv_file(ms, Power_in_W,Distance_in_mm,Force_in_N) VALUES (%s, %s, %s, %s)"
cursor.executemany(sql, values)
知道了。 - 問題解決了。 僅使用參數 a,更改了我的 MS 值的大小,最后但並非最不重要的一點是,我將所有內容都放入了 for 循環中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.