我正在尝试创建一个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()
之后还有更多代码。但这都是基于这个问题。我非常感谢你的帮助。非常感谢! :)