获取“ cp950”编解码器的Unicode解码错误,无法解码位置2516中的字节0x80:非法的多字节序列

时间:2019-11-27 19:04:05

标签: python sqlite csv

我想读取CSV文件,调用test.csv,然后使用Python将其导入到SQLite数据库中。

但是,出现错误 enter image description here

这是Python代码:

import csv, sqlite3

con= sqlite3.connect('my_dataset.db')
cur = con.cursor()
cur.execute("CREATE TABLE t(aa,bb,cc,dd);")

with open('testing.csv','r') as fin:
    dr = csv.DictReader(fin)
    to_db = [(i['aa'], i['bb'],i['cc'],i['dd']) for i in dr]

cur.executemany("INSERT INTO t(aa,bb,cc,dd) VALUES (?,?,?,?);", to_db)
con.commit()
con.close()

这是CSV文件: enter image description here

此外,我还希望获得每一行的平均值,最大值和最小值。我应该使用SQL关键字(AVG,MAX,MIN)还是其他方式?任何想法?我应该放在哪里?

谢谢〜

1 个答案:

答案 0 :(得分:1)

将您的csv解码为utf-8

为此,请更改:

with open('testing.csv','r') as fin:

收件人

with open('testing.csv','r', encoding='utf-8') as fin: