将Python字符串或字典插入MySQL

时间:2017-08-01 22:37:53

标签: python mysql string dictionary

我有一个Python字符串(或者可能是Python字典),我想插入MySql表。
我的字符串如下:

{'ticker': 'BTC', 'avail_supply': 16479075.0, 'prices': 2750.99, 'name': 'Bitcoin', '24hvol': 678995000.0}

this is the error I'm getting

如果我想插入Dict格式,我会遇到同样的错误 我真的不明白这种错误(即字符串组件之间的错误)。 我该如何处理这个错误?为什么要在SQL中将整个字符串正确插入特定的TEXT单元? 非常感谢!!

1 个答案:

答案 0 :(得分:1)

以下是连接,制作表格和插入表格的方法。

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个列,一个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())