[英]I am trying to import a csv file to mysql using python. I am getting an error ' TypeError: not enough arguments for format string'
[英]when I am inserting datetime into mysql from csv file using python I am getting error
我從csv將datetime插入到mysql中,出現以下錯誤。
_mysql_exceptions.OperationalError: (1292, "Incorrect datetime value: '8/13/2017 19:10' for column 'js_signup' at row 1").
我的約會時間是這樣的“ 8/10/2017 12:59”
我的代碼如下
import csv
import MySQLdb
mydb = MySQLdb.connect(host='localhost',user='root',passwd='Yogi123$',db='wisdom_india')
cursor = mydb.cursor()
csv_data = csv.reader(file('test_csv.csv'))
for row in csv_data:
cursor.execute("""INSERT INTO testcsv(js_id,
js_name,js_email,js_signup)
VALUES(%s,%s,%s,STR_TO_DATE(%s,'%%%m/%%%d/%%%Y %%%h:%%%i'))""", row)
mydb.commit()
cursor.close()
print "Done"
除了使用SQL,您還可以在本機python代碼中重新格式化日期嗎? 請參見下面的示例(請注意,這僅是指示性的)。
import csv
import MySQLdb
mydb = MySQLdb.connect(host='localhost',user='root',passwd='Yogi123$',db='wisdom_india')
cursor = mydb.cursor()
csv_data = csv.reader(file('test_csv.csv'))
for row in csv_data:
cursor.execute("""INSERT INTO testcsv(js_id,
js_name,js_email,js_signup)
VALUES(%s,%s,%s," + datetime.datetime.strptime(%s, '%m-%d-%Y %h:%m').strftime('%Y-%m-%d %h:%m') + ")""", row)
mydb.commit()
cursor.close()
print "Done"
讓我知道您是否要對此進行編碼和測試,或者有任何其他問題。
這是一些更新的代碼(為了方便起見,請稍做修改),此代碼會上傳此數據:
1,2,3,01-13-2017 13:00
1,2,3,01-13-2017 13:00
1,2,3,01-13-2017 13:00
到此表:
CREATE TABLE testLoad(js_id INT UNSIGNED, js_name INT UNSIGNED, js_email INT UNSIGNED, js_signup DATETIME);
像這樣:
import csv
import MySQLdb
import datetime
mydb = MySQLdb.connect(host='localhost',user='root',passwd='',db='test')
cursor = mydb.cursor()
with open('test_csv.csv', 'r') as csvfile:
csv_data = csv.reader(csvfile)
for row in csv_data:
VInsert = "INSERT INTO testLoad(js_id, js_name,js_email,js_signup) VALUES(" + row[0] + ", " + row[1] + ", " + row[2] + ", '" + datetime.datetime.strptime(row[3], '%m-%d-%Y %H:%M').strftime('%Y-%m-%d %H:%M') + "')"
cursor.execute(VInsert)
mydb.commit()
cursor.close()
print "Done"
結果如下:
SELECT * FROM testLoad;
+-------+---------+----------+---------------------+
| js_id | js_name | js_email | js_signup |
+-------+---------+----------+---------------------+
| 1 | 2 | 3 | 2017-01-13 13:00:00 |
| 1 | 2 | 3 | 2017-01-13 13:00:00 |
| 1 | 2 | 3 | 2017-01-13 13:00:00 |
+-------+---------+----------+---------------------+
3 rows in set (0.00 sec)
問候,
詹姆士
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.