import sqlite3
def create_history(string1, r):
db = sqlite3.connect(r)
curr = db.cursor()
db.execute('drop table if exists r')
db.execute('create table r (symbol text, name text, datastartdate integer, \
dataenddate integer)')
for line in string1:
value = line.strip().split(',')
symbol = value[0]
name = value[1]
datastartdate = int(value[2])
dataenddate = int(value[3])
db.execute("insert into r values (?,?,?,?)",
(symbol, name, datestartdate, dataenddate))
db.commit()
curr.close()
db.close()
对于这段代码,我总是出错。现在我得到了list index out of range
。我试图用SQLite创建一个数据库,但我对它并没有真正的经验。在
文件中string1的数据是
AFU-UN,ACUITY FOCUSED TTL TRUST UNITS,20050216,20090831
BCD,DIAMONDCORE LTD,20080213,20091030
BMT,BMONT SPLIT CORP COM STK NPV,20060418,20090805
HUG,HORIZONS BETAPRO COMEX GOLD ET,20091029,20091030
NAE-UN,NAL OIL & GAS TST TRUST UNITS,19960813,20091030
NXY,NEXEN INC COM NPV,19950112,20091030
SCC,SEARS CANADA INC COM NPV,19950112,20091030
YNG,YUKON-NEVADA GOLD COM NPV,20050419,20091030
这是关于股票的信息,价值按以下顺序排列:
Symbol
Name
DataStartdate
DataEnddate
最终创建的文件总是用一堆null填充。这些也是用于执行函数的参数
create_history(open('sample_history'), 'history.db'))
现在最大的问题是零。在
如果
string1
是单个字符串中的整个文件,则for line in strings: …
将迭代字符串中的每个字符。您需要先在换行符上拆分:但最好在输入文件上输入迭代器,例如:
^{pr2}$更好的是,使用Python的csv模块:
相关问题 更多 >
编程相关推荐