Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python MySQLdb将dict插入表中_Python_Dictionary_Insert_Mysql Python - Fatal编程技术网

Python MySQLdb将dict插入表中

Python MySQLdb将dict插入表中,python,dictionary,insert,mysql-python,Python,Dictionary,Insert,Mysql Python,我有一行dict格式的数据。有没有一种简单的方法可以将它插入mysql表中。我知道我可以编写一个自定义函数将dict转换为自定义sql查询,但我正在寻找一个更直接的替代方法。MySQLDB没有任何允许这样直接操作的工具。这是一个常见的问题,有各种各样的答案,包括用于此目的的自定义函数 根据我的经验,最好是全力以赴,大部分时间只编写参数化SQL。如果你有同样的事情,那么我会考虑把它分解成效用函数。 但是,如果您使用参数手工编写静态SQL,那么大多数安全性和bug相关问题都会得到解决。当您开始将SQ

我有一行dict格式的数据。有没有一种简单的方法可以将它插入mysql表中。我知道我可以编写一个自定义函数将dict转换为自定义sql查询,但我正在寻找一个更直接的替代方法。

MySQLDB没有任何允许这样直接操作的工具。这是一个常见的问题,有各种各样的答案,包括用于此目的的自定义函数

根据我的经验,最好是全力以赴,大部分时间只编写参数化SQL。如果你有同样的事情,那么我会考虑把它分解成效用函数。

但是,如果您使用参数手工编写静态SQL,那么大多数安全性和bug相关问题都会得到解决。当您开始将SQL建立在来自where(?)的数据字典上时,您需要更加小心

总之,如果您只需编写查询、使用参数并很好地编写文档,那么您的代码可能更具可读性、可维护性和安全性


(注意:ORM的一些支持者……可能不同意……这是一个基于大量经验的观点,内容简单、可靠,对我们的团队有效)

好吧。。。根据
paramstyle
的文档:

设置为“格式”=ANSI C printf格式代码,例如“其中名称=%s”。 如果映射对象用于conn.execute(),则接口 实际上使用“pyformat”=Python扩展格式代码,例如。 “…其中name=%(name)s”。但是,API目前不允许 paramstyle中多个样式的说明

因此,这应该只是一个问题:

curs.execute(“插入到foo(col1,col2,…)值(%(key1)s,%(key2)s,…),字典)

其中
key1
key2
等将是字典中的键

免责声明:我自己没有尝试过:)

编辑:是的,试过了。它起作用了