使用psycopg2和postgresql 9.3需要使用以下语法将一行插入表中:
cur.execute(
'INSERT INTO customer (name,address) VALUES ('Herman M', '1313 mockingbird lane'))
如果数据出现在字典中{'名称':'赫尔曼M','地址':#13; 1313模仿鸟道'}有没有比这更好,更pythonic的方式从字典中提取键和值:
fields,values = '',[]
for k,v in dictionary.items():
fields = ','.join((fields,k))
values.append((v))
为了做到这一点:
cur.execute(
"INSERT INTO {} ({}) VALUES {}".format(
tablename,fields[1:],tuple(values)))
它有效,但在看完Raymond Hettinger谈论将代码转换成美丽的惯用蟒蛇之后,我对它很丑陋并且我正在复制数据的事实很敏感。还有更好的方法吗?
答案 0 :(得分:1)
使用cursor.execute
方法
insert_query = """
insert into customer (name, address)
values (%(name)s, %(address)s)
"""
insert_dict = {
'name': 'Herman M',
'address': '1313 mockingbird lane'
}
cursor.execute(insert_query, insert_dict)