SyntaxError:解析时意外的EOF

时间:2013-07-12 12:44:36

标签: python parsing syntax-error mysql-python eof

我正在尝试从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..

1 个答案:

答案 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文件。