1

pythonanywhere で web2py に問題があります。テキストファイルを読み込んで分割し、値をリストに入れています。タプルのリストも試しました。データは明らかにそこにありますが、入れさせてくれません。リストにデータが入力されていることがわかっているのに、null だと言い続けます。

エラー: 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))
4

1 に答える 1

0

あなたがするとき

db.artist3.insert(name=ar)

名前付きで、numTなし(numT=NULL)の新しいartist3を作成しています。

あなたがするとき

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

名前なし(name = NULL)でnumTを持つ新しいartist3を作成しています

テーブル定義によると、NULL numT は必要ありませんField('numT','text',notnull=True)

したがって、おそらくこれら2つのインサートを交換する必要があります

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

シングルインサート付き

db.artist3.insert(name=ar, numT=int(th))
于 2013-12-30T19:43:34.340 に答える