web2py db导入问题

时间:2013-12-30 18:34:45

标签: web2py pythonanywhere

在pythonanywhere上遇到web2py问题。 我正在读取一个文本文件并将其拆分并将值放入列表中,还尝试了元组列表。 数据显然在那里,但不会让我把它放入,当我知道列表已填充时,一直说它为空。

错误:  artist3.numT可能不是NULL

dbcode
# coding: utf8
fp = open('/home/dingadestroy/count.txt','r')
ft1 = fp.read()
li = []
artists = []
tweets = []
classArt = []
text = []
count = []
def getCount():
    count = []
    x = ft1.split('\n')
    for i in x:
        z = i.split('\t')
        if len(z)>=2:
            artists.append(z[0])
            li.append(z[1])

getCount()

db.define_table('artist3',
                Field('name','text'),
                Field('numT','text',notnull=True))

#db.define_table('artist',
     #           Field('name',notnull=True,unique=True),
       #         format = '%(name)s')


for th in li:
    for ar in artists:
            db.artist3.insert(name=ar)
            db.artist3.insert(numT=int(th))

1 个答案:

答案 0 :(得分:0)

当你这样做时

db.artist3.insert(name=ar)

您正在使用名称创建新的 artist3 ,而不使用 numT (numT = NULL)

当你这样做时

db.artist3.insert(numT=int(th))

您正在创建一个没有名称的新 artist3 (名称= NULL),并且使用 numT

根据您的表定义,您不需要NULL numT Field('numT','text',notnull=True)

所以你应该更换这两个插入

db.artist3.insert(name=ar)
db.artist3.insert(numT=int(th))

单个插入

db.artist3.insert(name=ar, numT=int(th))
相关问题