0

我正在尝试从 csv 中获取数据并将其插入到 mysql 表中。同时尝试获取Syntax Error. 请帮我解决这个错误。

代码

导入 csv
将 MySQLdb 导入为 mdb
导入 ast
cr = csv.reader(open("tushar.csv","rb"))
k=0
con = mdb.connect('***', '***', '***', '****')
cur = con.cursor()
对于 cr 中的行:
    如果 k%2==0:
        t=行
        打印
    别的:
        l1=行
        l=ast.literal_eval(l1[0])
        sql="INSERT INTO amazon_order (orderno,mainStatus,stateCode,timeStamp,destZip,orderDate,cost) 值('%s','%s','%s')"%(t,l["status"], l["state_code"],l["processed_timestamp"],l["destination_zip"],l["odr_date"],l["cost"])
        打印 sql
        cur.execute(sql)
        con.commit()
    k+=1
如果反对:
    con.close()     

错误

['497832']
回溯(最近一次通话最后):
  文件“linkedlist.py”,第 14 行,在
    l=ast.literal_eval(l1[0])
  文件“/usr/lib/python2.7/ast.py”,第 49 行,位于 literal_eval 中
    node_or_string = parse(node_or_string, mode='eval')
  解析中的文件“/usr/lib/python2.7/ast.py”,第 37 行
    返回编译(源,文件名,模式,PyCF_ONLY_AST)
  文件“”,第 1 行
    {"status": "所有项目已处理"
                                   ^
SyntaxError:解析时出现意外的 EOF

图沙尔.csv

497832
{“status”:“所有项目已处理”,“state_code”:“GA”,“processed_timestamp”:“2013/05/14 19:32:08 UTC”,“destination_zip”:“31028”,“odr_date”:“ 2013-05-13 00:00:00""成本": 54.08}
487870
{“status”:“所有项目已处理”,“state_code”:“CT”,“processed_timestamp”:“2013/03/11 22:15:43 UTC”,“destination_zip”:“06468”,“odr_date”:“ 2013-03-11 00:00:00","成本": 149.43}
等等..
4

1 回答 1

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 内容。

于 2013-07-12T16:32:24.720 回答