проблема с импортом базы данных web2py

возникла проблема с web2py на pythonanywhere. Я читаю текстовый файл, разбиваю его и помещаю значения в список, также пробовал список кортежей. Данные явно есть, но не позволяют мне их вставить, постоянно говорят, что они пусты, когда я знаю, что список заполнен.

Ошибка: 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))

person user2387330    schedule 30.12.2013    source источник


Ответы (1)


Когда вы делаете

db.artist3.insert(name=ar)

Вы создаете нового artist3 с именем и без numT (numT=NULL)

Когда вы делаете

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

Вы создаете нового artist3 без имени (name=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))
person espern    schedule 30.12.2013