如何使用Python将CSV文件导入SQlite数据库?

时间:2017-08-15 23:00:29

标签: python sqlite csv

我正在尝试创建一个SQLite表,并使用python代码将csv文件导入其中。我正确地创建了表格部分(简单xD):

 cur.execute('''CREATE TABLE IF NOT EXISTS Survey
(`ResponseID`   TEXT,
`StartDate` TEXT,
`EndDate`   TEXT,
`Status`    TEXT,
`SourceType`    TEXT,
`InteractPedestrian`    TEXT,
`InteractBicycle`   TEXT,
`CircumstancesCoded`    TEXT,
`FeelingsProvingGround` TEXT,
`SafetyHuman`   TEXT,
`SafetyAV`  TEXT,
`AVSafetyPotential` TEXT,
`RegulationTesting` TEXT,
`RegulationSpeed`   TEXT,
`RegulationSchoolZone`  TEXT,
`RegulationShareData`   TEXT,
`AdvocacyIssues`    TEXT,
`BikePghPosition`   TEXT,
`PayingAttentionAV` TEXT,
`FamiliarityTechnoology`    TEXT,
`ZipCode`   TEXT,
PRIMARY KEY(`ResponseID`)
);
''')

有效。但是之后我需要输入几行代码才能将csv文件的数据添加到该表中。我试过这个:

''' .mode csv; 
.import c:/Users/karan_4q59raf/Desktop/Pyhton codes/dataproject/bikepghpublic.csv Survey; '''

和此:

''' .separator ,
.import c:/Users/karan_4q59raf/Desktop/Python codes/dataproject/bikepghpublic.csv Survey;'''

这两个代码最终都会出现同样的错误:

  

sqlite3.OperationalError:near"。":语法错误

我不明白为什么。我尝试了很多东西,这让我很困惑。我很想知道这个错误是否与我使用' .import'等等,或者如果是语法,或者它是其他的东西。

现在我在(因为有人要求我提供完整的代码):

cur.execute('''CREATE TABLE IF NOT EXISTS Survey
(`ResponseID`   TEXT,
`StartDate` TEXT,
`EndDate`   TEXT,
`Status`    TEXT,
`SourceType`    TEXT,
`InteractPedestrian`    TEXT,
`InteractBicycle`   TEXT,
`CircumstancesCoded`    TEXT,
`FeelingsProvingGround` TEXT,
`SafetyHuman`   TEXT,
`SafetyAV`  TEXT,
`AVSafetyPotential` TEXT,
`RegulationTesting` TEXT,
`RegulationSpeed`   TEXT,
`RegulationSchoolZone`  TEXT,
`RegulationShareData`   TEXT,
`AdvocacyIssues`    TEXT,
`BikePghPosition`   TEXT,
`PayingAttentionAV` TEXT,
`FamiliarityTechnoology`    TEXT,
`ZipCode`   TEXT,
PRIMARY KEY(`ResponseID`)
);
''')

# Check to see if we are already in progress...
cur.execute('''SELECT * FROM Survey ORDER BY RANDOM() LIMIT 1''')
row = cur.fetchone()

if row is not None:
    print("Restarting existing crawl.  Remove spider.sqlite to start a fresh    crawl.")
else :
    cur.execute((''' .mode csv;
    .import c:/Users/karan_4q59raf/Desktop/Pyhton codes/dataproject/bikepghpublic.csv Survey;'''))
    conn.commit()

之后还有更多代码。但这都是基于这个问题。我非常感谢你的帮助。非常感谢! :)

0 个答案:

没有答案