我正在尝试从csv获取数据并将其插入到mysql表中。虽然我正在尝试获取Syntax Error
。请帮我解决这个错误。
码
import csv import MySQLdb as mdb import ast cr = csv.reader(open("tushar.csv","rb")) k=0 con = mdb.connect('***', '***', '***', '****') cur = con.cursor() for row in cr: if k%2==0: t=row print t else: l1=row l=ast.literal_eval(l1[0]) sql="INSERT INTO amazon_order (orderno,mainStatus,stateCode,timeStamp,destZip,orderDate,cost) Values('%s','%s','%s')"%(t,l["status"],l["state_code"],l["processed_timestamp"],l["destination_zip"],l["odr_date"],l["cost"]) print sql cur.execute(sql) con.commit() k+=1 if con: con.close()
错误的
['497832'] Traceback (most recent call last): File "linkedlist.py", line 14, in l=ast.literal_eval(l1[0]) File "/usr/lib/python2.7/ast.py", line 49, in literal_eval node_or_string = parse(node_or_string, mode='eval') File "/usr/lib/python2.7/ast.py", line 37, in parse return compile(source, filename, mode, PyCF_ONLY_AST) File "", line 1 {"status": "All items processed" ^ SyntaxError: unexpected EOF while parsing
tushar.csv
497832 {"status": "All items processed", "state_code": "GA", "processed_timestamp": "2013/05/14 19:32:08 UTC", "destination_zip": "31028", "odr_date": "2013-05-13 00:00:00""cost": 54.08} 487870 {"status": "All items processed", "state_code": "CT", "processed_timestamp": "2013/03/11 22:15:43 UTC", "destination_zip": "06468", "odr_date": "2013-03-11 00:00:00","cost": 149.43} and so on..
答案 0 :(得分:0)
您不应该使用CSV。您的文件不是逗号分隔值格式。 CSV将文件行分成不可分割的部分。
取
{"status": "All items processed", "state_code": "GA", "processed_timestamp": "2013/05/14 19:32:08 UTC", "destination_zip": "31028", "odr_date": "2013-05-13 00:00:00""cost": 54.08}
并将其拆分为','并获得一个列表:
['{"status": "All items processed"',
'"state_code": "GA"',
'"processed_timestamp": "2013/05/14 19:32:08 UTC"',
(etc..)
第一行看起来很熟悉。
只需打开文件并逐行阅读 - 完全跳过csv文件。