我有一个Python字符串(或者可能是Python字典),我想插入到MySql表中。
我的字符串如下:
{'ticker': 'BTC', 'avail_supply': 16479075.0, 'prices': 2750.99, 'name': 'Bitcoin', '24hvol': 678995000.0}
如果我想插入Dict格式,我也会遇到同样的错误。
我真的不理解这种错误(即字符串组件之间的'\‘)。如何处理此错误?为什么要正确地将整个字符串插入到SQL中的特定文本单元格中?
非常感谢!
发布于 2017-08-02 08:51:50
下面是如何连接、创建表和在表中插入的方法。
import MySQLdb as mdb
import sys
#connect
con = mdb.connect('localhost', 'testuser', 'test623', 'testdb');
with con:
#need the cursor object so you can pass sql commands, also there is a dictionary cursor
cur = con.cursor()
#create example table
cur.execute("CREATE TABLE IF NOT EXISTS \
Writers(Id INT PRIMARY KEY AUTO_INCREMENT, Name VARCHAR(25))")
#insert what you want
cur.execute("INSERT INTO Writers(Name) VALUES('Jack London')")
cur.execute("INSERT INTO Writers(Name) VALUES('Honore de Balzac')")
cur.execute("INSERT INTO Writers(Name) VALUES('Lion Feuchtwanger')")
cur.execute("INSERT INTO Writers(Name) VALUES('Emile Zola')")
cur.execute("INSERT INTO Writers(Name) VALUES('Truman Capote')")
上面的示例将生成一个包含2个cols、一个ID和一个名称的表
查看here的示例,了解如何使用键和列表将字典中的内容作为值插入到sql中,基本上您需要使用占位符
sql = "INSERT INTO mytable (a,b,c) VALUES (%(qwe)s, %(asd)s, %(zxc)s);"
data = {'qwe':1, 'asd':2, 'zxc':None}
conn = MySQLdb.connect(**params)
cursor = conn.cursor()
cursor.execute(sql, data)
cursor.close()
conn.close()database
或者,您可以使用this作为一个简单、直接的字典示例
placeholders = ', '.join(['%s'] * len(myDict))
columns = ', '.join(myDict.keys())
sql = "INSERT INTO %s ( %s ) VALUES ( %s )" % (table, columns, placeholders)
cursor.execute(sql, myDict.values())
https://stackoverflow.com/questions/45448708
复制相似问题