在。python3中将.csv导入.db

时间:2018-02-27 14:12:15

标签: python csv sqlite

如果你能帮我解决这个问题,我将不胜感激。我想使用Python将.csv(带有数据的5列)数据导入.db格式。我从这里拿了剧本:

import sqlite3
import csv
class csvrd(object):
    def csvFile(self):
        self.readFile('c:/users/quant/desktop/trade.csv')
    def readFile(self, filename):
        conn = sqlite3.connect('c:/users/quant/desktop/ledger_4.db')
        cur = conn.cursor() 
        cur.execute("""CREATE TABLE IF NOT EXISTS trading(date varchar,asset varchar,quant varchar,price varchar,com varchar)""")
        filename.encode('utf-8')
        print ("test1")
        with open(filename) as f:
            reader = csv.reader(f)
            for field in reader:
                cur.execute("INSERT INTO unicom VALUES (?,?,?,?,?);", field)
        conn.commit()
        conn.close()
c = csvrd().csvFile()

但不幸的是我得到了这个:

  

'charmap'编解码器无法解码位置62中的字节0x9d:字符映射   到

您能否告知代码有什么问题或帮助导入csv的其他任何方式? 非常感谢你提前了!

感谢您的回复!来自csv的几行:

  • 日期资产定量价格com
  • “2017年8月8日 11:35:49“Башнефтьа.о.32 188,00 2,63
  • “2017年8月8日 11:35:49“Башнефтьа.о.32 188,00 2,63
  • “2017年8月8日 11:35:49“Башнефтьа.о。2 2 188,00 1,75

1 个答案:

答案 0 :(得分:0)

根据Encoding Problem: Double Mis-Conversion,您可能必须将文件读取为字节,然后将0x9D替换为0xC3,然后对其进行解码