【问题标题】:web2py db import issueweb2py 数据库导入问题
【发布时间】:2014-01-17 16:22:44
【问题描述】:

在 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))

【问题讨论】:

    标签: web2py pythonanywhere


    【解决方案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))
    

    【讨论】:

      猜你喜欢
      • 2018-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-23
      • 1970-01-01
      • 2016-11-02
      相关资源
      最近更新 更多