首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将Python字符串或字典插入到MySQL中

将Python字符串或字典插入到MySQL中
EN

Stack Overflow用户
提问于 2017-08-02 06:37:53
回答 1查看 4.7K关注 0票数 1

我有一个Python字符串(或者可能是Python字典),我想插入到MySql表中。

我的字符串如下:

代码语言:javascript
运行
复制
{'ticker': 'BTC', 'avail_supply': 16479075.0, 'prices': 2750.99, 'name': 'Bitcoin', '24hvol': 678995000.0}

如果我想插入Dict格式,我也会遇到同样的错误。

我真的不理解这种错误(即字符串组件之间的'\‘)。如何处理此错误?为什么要正确地将整个字符串插入到SQL中的特定文本单元格中?

非常感谢!

EN

回答 1

Stack Overflow用户

发布于 2017-08-02 08:51:50

下面是如何连接、创建表和在表中插入的方法。

代码语言:javascript
运行
复制
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中,基本上您需要使用占位符

代码语言:javascript
运行
复制
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作为一个简单、直接的字典示例

代码语言:javascript
运行
复制
placeholders = ', '.join(['%s'] * len(myDict))
columns = ', '.join(myDict.keys())
sql = "INSERT INTO %s ( %s ) VALUES ( %s )" % (table, columns, placeholders)
cursor.execute(sql, myDict.values())
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45448708

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档