如何通过python将python字典存储到mysql数据库中

2024-04-27

我试图通过将字典转换为字符串然后尝试插入来将以下字典存储到 mysql DB 中,但出现以下错误。如何解决这个问题,或者有其他方法将字典存储到 mysql DB 中吗?

dic = {'office': {'component_office': ['Word2010SP0', 'PowerPoint2010SP0']}}
d = str(dic)

# Sql query
sql = "INSERT INTO ep_soft(ip_address, soft_data) VALUES ('%s', '%s')" % ("192.xxx.xx.xx", d )

soft_data is a VARCHAR(500)

错误: 执行异常(1064,“您的 SQL 语法有错误;请检查与您的 MySQL 服务器版本对应的手册,以获取正确的语法 在 'office' 附近使用:{'component_office': ['Word2010SP0', 'PowerPoint2010SP0' 在第 1 行")

有什么建议或帮助吗?


首先,永远不要像这样构建原始 SQL 查询。永远不能。这就是参数化查询的用途。你要求一个SQL注入 http://en.wikipedia.org/wiki/SQL_injection攻击。

如果要存储任意数据(例如 Python 字典),则应该序列化该数据。JSON http://www.python.org/doc/current/library/json.html对于格式来说是不错的选择。

总的来说,您的代码应该如下所示:

import MySQLdb
import json

db = MySQLdb.connect(...)    
cursor = db.cursor() 

dic = {'office': {'component_office': ['Word2010SP0', 'PowerPoint2010SP0']}}
sql = "INSERT INTO ep_soft(ip_address, soft_data) VALUES (%s, %s)"

cursor.execute(sql, ("192.xxx.xx.xx", json.dumps(dic)))
cursor.commit()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何通过python将python字典存储到mysql数据库中 的相关文章

  • Python:数百万个小文件的读写速度缓慢

    结论 看来 HDF5 是适合我的目的的方法 基本上 HDF5 是一种用于存储和管理数据的数据模型 库和文件格式 并且旨在处理令人难以置信的大量数据 它有一个名为 python tables 的 Python 模块 链接在下面的答案中 HDF
  • 按行中的值选择 pandas 数据框中的列

    我有一个pandas DataFrame列太多 我想选择行中的值等于的所有列0 and 1 所有列的类型是int64我无法通过以下方式选择它们object或其他类型 我怎样才能做到这一点 IIUC 然后你可以使用isin http pand
  • 嵌套列表递归python的序列

    给定一些数字 n 我想生成一个大小为 n 的列表 其中以下示例显示列表中的第 n 个元素应该如何 对于 n 0 返回 对于 n 1 返回 对于 n 2 返回 对于 n 3 返回 基本上 它采用先前的列表并将它们附加到新列表中 我尝试过以下方
  • com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException:连接关闭后不允许执行任何操作

    我构建了一个应用程序并在本地部署 并且它运行良好 我将其部署在远程服务器上 并开始收到主题行中提到的异常 这不是因为任何防火墙问题 我改变了我的hibernate xml通过我的 IP 地址而不是 localhost 进行连接 现在我在本地
  • django自定义模板标签中的访问请求

    我在 myapp extras py 中的代码 from django import template register template Library register inclusion tag new userinfo html d
  • Tensorflow无法分配设备进行操作

    我正在尝试跑步NVidia 脸部生成器演示 https github com tkarras progressive growing of gans在我的电脑上 我使用的是 Windows 10 我已经下载了源代码 并尝试按照页面下方的步骤
  • 比较两个类似列表的对象的内容的最佳方法是什么?

    例如 当我必须比较两个类似数组的对象的内容时lists tuples or collection deques 不考虑对象的类型 我使用 list an arrayish list another arrayish 有没有更惯用 更快 更好
  • matplotlib 的上限/下限

    我想用误差线绘制一些数据点 其中一些数据点只有上限或下限 而不是误差线 所以我尝试使用索引来区分带有误差条的点和带有上限 下限的点 但是 当我尝试这样的事情时 errorbar x i y i yerr ymin i ymax i 我收到错
  • Python 请求:使用 Multipart/form-data 在 Facebook 上发布图像

    我正在使用 facebook API 在页面上发布图像 我可以使用以下命令从网络发布图像 import requests data url url caption caption access token token status requ
  • 如何删除在 Matplotlib 中使用鼠标悬停事件创建的绘图线?

    我在带有鼠标悬停事件的图中创建了一条垂直线和一条水平线 这些线旨在帮助用户选择在图中单击的位置 我的问题是 当鼠标移动到绘图上时 之前绘制的线条不会消失 有人可以解释我该怎么做吗 我在 OnOver 函数内绘制绘图后使用了 ax lines
  • 将 python 代码写入 python 文件的最佳方法是什么?

    我想编写一个脚本 generate script py 生成另一个python脚本 file generated py 到目前为止我已经创建了generate script py import os filepath os getcwd d
  • pandas:如何将嵌套 JSON 解包为数据帧?

    我有这样的 JSON 输出 json json SeriousDlqin2yrs prediction 0 prediction probs 0 0 95 1 0 04 SeriousDlqin2yrs prediction 0 predi
  • 如何在 Python 中从平面列表构建嵌套列表? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我有一个简单的列表 例如 flat 1 1 1 1 1 1 1 2 2 2 1 2 2 3 我需要转换为嵌套列表 其中每个级别 破折号后跟数
  • Python 类:通过传递值实现单例还是非单例?

    我有一个 Python 3 类 目前是使用 a 定义的单例 singleton装饰器 但有时需要not成为单身人士 问题 是否可以在从类实例化对象时执行类似于传递参数的操作 并且该参数确定该类是否是单例 我试图找到一种替代方法来复制类并使其
  • 从另一个文件执行按钮命令?

    我已经开始开发一个 GUI 系统 在该系统中 我需要从一个文件导入一个函数 以便在按下按钮时在主文件中执行 但每次运行它时 我都会得到 AttributeError partially initialized module Two has
  • 如何防止模块被导入两次?

    在编写python模块时 有没有办法防止它被客户端代码导入两次 就像 c c 头文件一样 ifndef XXX define XXX endif 非常感谢 Python 模块不会被多次导入 仅运行两次 import 不会重新加载模块 如果你
  • Python:定义多个相同类型的变量?

    可能是重复的 但至少我无法通过搜索这些术语找到答案 在Python中有没有更快的方法来做到这一点 level1 level2 level3 我试过了 level1 level2 level3 但这似乎创建了该对象的副本 这不是我想要的 和
  • 在 Pandas 中按索引分组

    如何使用 groupby by 索引 1 2 3 它们的顺序相同 并获得属于每个索引范围的列分数的总和 基本上我有这个 index score 1 2 2 2 3 2 1 3 2 3 3 3 我想要的是 index score sum 1
  • Pandas dataframe ,使用 iloc 替换最后一行

    我正在尝试使用 iloc 替换 Pandas 数据帧的最后一行 但是我无法让它工作 有很多解决方案 但最简单 最慢 的是这里 如何在 Python 中对 Pandas 数据帧上的行进行 FIFO 推送操作 https stackoverfl
  • Pandas DataFrame 中多列的映射方法

    我有一个 Pandas 数据框 其中的值是列表 import pandas as pd DF pd DataFrame X 1 5 1 2 Y 1 2 5 1 3 5 DF X Y 0 1 5 1 2 5 1 1 2 1 3 5 我想检查

随机推荐