lst = [{'Fruit':'Apple','HadToday':2},{'Fruit':'Banana','HadToday':8}]
我有一长串上述形式的词典。
我有两个固定变量。
person = 'Sam'
date = datetime.datetime.now()
我想把这个信息插入一个表格 mysql
table。
我现在是怎么做的
for item in lst:
item['Person'] = person
item['Date'] = date
cursor.executemany("""
INSERT INTO myTable (Person,Date,Fruit,HadToday)
VALUES (%(Person)s, %(Date)s, %(Fruit)s, %(HadToday)s)""", lst)
conn.commit()
是一种方法,它绕过了循环,因为person和date变量是常量。我试过了
lst = [{'Fruit':'Apple','HadToday':2},{'Fruit':'Banana','HadToday':8}]
cursor.executemany("""
INSERT INTO myTable (Person,Date,Fruit,HadToday)
VALUES (%s, %s, %(Fruit)s, %(HadToday)s)""", (person,date,lst))
conn.commit()
typeerror:格式字符串的参数不足
1条答案
按热度按时间mutmk8jj1#
你的问题是,它试图应用所有
lst
进入%(Fruit)s
什么也没有留下%(HadToday)s)
.如果你有一个像“tim o'molligan”这样的名字,你不应该通过将固定值硬编码到语句中来解决问题,最好让db处理正确的格式。
不是mysql,但你知道要点:http://initd.org/psycopg/docs/usage.html#the-查询参数的问题——一周前我自己学的;(o)
可能最干净的方法就是
使用
我对语法不是百分之百的了解,但我希望你能理解。如果我有拼写错误,请评论/编辑答案。