python mysql 字段与关键字冲突的解决方式

解决方法:python中把字段名称用反引号(`),也就是ESC下面~那个按钮。

示例:

数据字段设计如下截图所示

待插入数据:

datas = {
  'sign_event':[
    {'id': 1, 'name': '华为mate9发布会' , 'limit': 100, 'status': 1, 'address': '会展中心1号厅', 'start_time': '2017-09-20 14:00:00','create_time':'2017-08-20 14:00:00'},
    {'id': 2, 'name': '华为P1000发布会' , 'limit': 200, 'status': 1, 'address': '会展中心2号厅', 'start_time': '2017-09-20 14:00:00','create_time':'2017-08-20 14:00:00'},
    {'id': 3, 'name': 'IPHONE888发布会' , 'limit': 300, 'status': 1, 'address': '会展中心3号厅', 'start_time': '2017-09-20 14:00:00','create_time':'2017-08-20 14:00:00'},
    {'id': 4, 'name': '半壁江山66演唱会' , 'limit': 400, 'status': 1, 'address': '会展中心4号厅', 'start_time': '2017-09-20 14:00:00','create_time':'2017-08-20 14:00:00'},
    {'id': 5, 'name': '金融P222222P上线' , 'limit': 500, 'status': 1, 'address': '会展中心5号厅', 'start_time': '2017-09-20 14:00:00','create_time':'2017-08-20 14:00:00'},
    {'id': 6, 'name': '未命名0000发布会' , 'limit': 600, 'status': 1, 'address': '会展中心6号厅', 'start_time': '2017-09-20 14:00:00','create_time':'2017-08-20 14:00:00'},
  ],
}

插入语句实现:

1.获取某个表的所有待插入数据

 for tablename,data in datas.items():
     for d in data:
       self.insert_datatable(tablename,d)
 self.close_dataConnetion()

2.每个表的数据,逐条循环插入到该表中

 def insert_datatable(self, tablename, table_data):
    keys = {}
    for key in table_data:
      # 从数据字段中取出列名,列名用反单引号括起来;--解决列名与mysql关键字冲突
      keys[key] = "`"+str(key)+"`"
      table_data[key] = "'"+str(table_data[key])+"'"
    key = ','.join(keys.values())
    value = ','.join(table_data.values())

    sql = "INSERT INTO " + tablename + " ( " + key + " ) VALUES ( " + value +" );"
    with self.connection.cursor() as cursor:
      cursor.execute('SET FOREIGN_KEY_CHECKS=0;') #取消外键约束
      cursor.execute(sql)
    self.connection.commit()

补充拓展:python 数据库 % 冲突问题解决

在使用python后台调用 MySQL数据库的时候会有 「%」的关键字冲突问题,比如 用Python后端读取 MySQL 中记录的逻辑,在 impala端执行,其中涉及到模糊匹配的 「%」会报错

解决:SQL逻辑中的单个「%」换为「%%」即可,不错的 trip。

以上这篇python mysql 字段与关键字冲突的解决方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

时间: 2020-03-01

MySQL 5.7中的关键字与保留字详解

前言 MySQL和Oracle的关键字还是不尽相同的,在Oracle数据库中,我们的数据表中定义了大量的code字段用来表示主键,但是在MySQL中code是关键字,使用以前的处理方法就有些"水土不服". 下面我们来了解一下MySQL中的关键字和保留字. 什么是关键字和保留字 关键字是指在SQL中有意义的字. 某些关键字(例如SELECT,DELETE或BIGINT)是保留的,需要特殊处理才能用作表和列名称等标识符. 这一点对于内置函数的名称也适用. 如何使用关键字和保留字 非保留关键

Python3连接Mysql8.0遇到的问题及处理步骤

最近在使用Python开发系统,需连接mysql数据库,我用的是Python3连接MySQL8.0,其中老是报错以下问题: 网上给了各种各样的方法,大多是通过各种方式修改密码. 最简单的方法是更换了root密码的认证方式解决的,新版mysql使用的caching_sha2_password,换成mysql_native_password我就可以连上了. 步骤是在cmd命令行连接mysql(管理员身份运行cmd)  进入cmd的命令行之后,输入cd+bin目录的地址,访问mysql的bin目录.通

Python处理mysql特殊字符的问题

有的时候我们会去扫表,然后拿出扫的结果再到另一张表里去查信息.比如下面一段 index_sql_str = "select %s from user where %s = %d" % ("social_id", "user_id", u_id) db_cursor.execute(index_sql_str) rows = ['"' + row[0] + '"' for row in db_cursor.fetchall()]

Python连接MySQL并使用fetchall()方法过滤特殊字符

来一个简单的例子,看Python如何操作数据库,相比Java的JDBC来说,确实非常简单,省去了很多复杂的重复工作,只关心数据的获取与操作. 准备工作 需要有相应的环境和模块: Ubuntu 14.04 64bit Python 2.7.6 MySQLdb 注意:Ubuntu 自带安装了Python,但是要使用Python连接数据库,还需要安装MySQLdb模块,安装方法也很简单: sudo apt-get install MySQLdb 然后进入Python环境,import这个包,如果没有报

python使用mysql的两种使用方式

Python操作MySQL主要使用两种方式: 原生模块 pymsql ORM框架 SQLAchemy pymql pymsql是Python中操作MySQL的模块,在windows中的安装: pip install pymysql 入门:我们连接虚拟机中的centos中的mysql,然后查询test数据库中student表的数据 import pymysql #创建连接 conn = pymysql.connect(host='192.168.123.207',port=3306,user='r

用 Python 连接 MySQL 的几种方式详解

尽管很多 NoSQL 数据库近几年大放异彩,但是像 MySQL 这样的关系型数据库依然是互联网的主流数据库之一,每个学 Python 的都有必要学好一门数据库,不管你是做数据分析,还是网络爬虫,Web 开发.亦或是机器学习,你都离不开要和数据库打交道,而 MySQL 又是最流行的一种数据库,这篇文章介绍 Python 操作 MySQL 的几种方式,你可以在实际开发过程中根据实际情况合理选择. 1.MySQL-python MySQL-python 又叫 MySQLdb,是 Python 连接 M

python 操作mysql数据中fetchone()和fetchall()方式

fetchone() 返回单个的元组,也就是一条记录(row),如果没有结果 则返回 None fetchall() 返回多个元组,即返回多个记录(rows),如果没有结果 则返回 () 需要注明:在MySQL中是NULL,而在Python中则是None 补充知识:python之cur.fetchall与cur.fetchone提取数据并统计处理 数据库中有一字段type_code,有中文类型和中文类型编码,现在对type_code字段的数据进行统计处理,编码对应的字典如下: {'ys4ng35

Python操作MySQL数据库9个实用实例

在Windows平台上安装mysql模块用于Python开发 用python连接mysql的时候,需要用的安装版本,源码版本容易有错误提示.下边是打包了32与64版本. MySQL-python-1.2.3.win32-py2.7.exe MySQL-python-1.2.3.win-amd64-py2.7.exe 实例 1.取得 MYSQL 的版本 # -*- coding: UTF-8 -*- #安装 MYSQL DB for python import MySQLdb as mdb con

python连接mysql实例分享

示例一 #coding=UTF-8 import sys import MySQLdb import time reload(sys) sys.setdefaultencoding('utf-8') def connectDemo(): return MySQLdb.Connection("127.0.0.1","root","root","demo",3306,charset="utf8") if __n

python操作mysql中文显示乱码的解决方法

本文实例展示了一个脚本python用来转化表配置数据xml并生成相应的解析代码. 但是在中文编码上出现了乱码,现将解决方法分享出来供大家参考. 具体方法如下: 1. Python文件设置编码 utf-8 (文件前面加上 #encoding=utf-8) 2. MySQL数据库charset=utf-8 3. Python连接MySQL是加上参数 charset=utf8 4. 设置Python的默认编码为 utf-8 (sys.setdefaultencoding(utf-8) 示例代码如下:

Linux下通过python访问MySQL、Oracle、SQL Server数据库的方法

本文档主要描述了Linux下python数据库驱动的安装和配置,用来实现在Linux平台下通过python访问MySQL.Oracle.SQL Server数据库. 其中包括以下几个软件的安装及配置: unixODBC FreeTDS pyodbc cx_Oracle 欢迎转载,请注明作者.出处. 作者:张正 QQ:176036317 如有疑问,欢迎联系. 本文档主要描述了Linux下python数据库驱动的安装和配置,用来实现在Linux平台下通过python访问MySQL.Oracle.SQ

Python的mysql数据库的更新如何实现

Python的mysql数据库的更新           Python的mysql数据库的更新操作,在实际应用项目中会用到更新数据库,更新过程中可能会出现数据丢失或者数据错乱等系统性的问题,还希望大家正确操作, 一 代码 import pymysql # 打开数据库连接 db = pymysql.connect("localhost","root","root","db_test01" ) # 使用cursor()方法获取操作