私は、ときに最初に私はテーブルに新しい行を追加しようとしていたコード(データベースsqliteの)TypeError例外は(と、「リストのインデックスは、strのない整数でなければなりません」)
@get('/inventory/add')
def inventory_add(db):
db.execute("INSERT INTO inventory (name, category, location, date, amount) VALUES (?, ?, ?, ?, ?)", (item['name'], item['category'], item['location'], item['date'], item['amount']))
db.commit()
のこの作品を書いたIそれを実行私が得た:
NameError("global name 'item' is not defined",)
をので、私はそれがうまくいく希望でリストとして項目を宣言することを決定したのpythonでの私の経験不足で、インターネットANの周りに掘っ:
item=[]
@get('/inventory/add')
def inventory_add(db):
db.execute("INSERT INTO inventory (name, category, location, date, amount) VALUES (?, ?, ?, ?, ?)", (item['name'], item['category'], item['location'], item['date'], item['amount']))
db.commit()
は、したがって、上記のコードを実行した後、私はこれだ:あなたがここに必要なもの
TypeError('list indices must be integers, not str',)
あなたの 'item'はリストです。 '[]'でインデックスするとき、インデックスは整数でなければなりません。 'item ['location']'は無効で、 'item [0]'は有効です(必ずしも正しいとは限りません)。あるいは、辞書: 'item = {}'を使用してください。その後、文字列インデックス(実際にはキー)は合法です。 – DyZ
'item = {}'を試しましたが、実行すると 'KeyError: 'name'' – JDoe
'item'を初期化するのに使ったコードを表示します。 – DyZ