精华内容
下载资源
问答
  • 今天遇到一个问题,用Python往MySQL插入数据时,若数据中包含中文会报类似下面的错误: ERROR 1366: Incorrect string value: '\xE4\xB8\xAD\xE5\x9B\xBD' for column 'tname' at row 1 但若之间在MySQL命令行中插入...

    今天遇到一个问题,用Python往MySQL插入数据时,若数据中包含中文会报类似下面的错误:

    ERROR 1366: Incorrect string value: '\xE4\xB8\xAD\xE5\x9B\xBD' for column 'tname' at row 1

    但若之间在MySQL命令行中插入,就不会报错。

    后来找到解决办法:

    步骤1:

      在 MySQL 的安装目录下有一个 my.ini 配置文件,通过修改这个配置文件可以解决乱码问题。在这个配置文件中 [mysql] 与客户端配置相关,[mysqld] 与服务器配置相关。默认使用latin1字符集,改成gbk或utf-8,然后重启MySQL服务:

    [mysql]
    default-character-set=latin1  改成 default-character-set=utf8 或者 default-character-set=gbk
    [mysqld]
    character-set-server=latin1   改成 character-set-server=utf8 或者 character-set-server=gbk
    

    重启MySQL服务之后,在建立新表时,字符串字段就会默认使用utf-8编码。

    另外,在建立新表时,可以通过sql语句:DEFAULT CHARSET=gbk来指定使用gbk字符集。如:

    CREATE TABLE `phonecalls` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `starttime` varchar(32) DEFAULT NULL COMMENT '通话起始时间',
      `location` varchar(20) DEFAULT NULL COMMENT '通话地点',
      `initiateType` varchar(10) DEFAULT NULL COMMENT '呼叫类型-主叫:1,被叫:2',
      `talkTo` varchar(16) DEFAULT NULL COMMENT '对方号码',
      `callDuration` tinyint(4) DEFAULT NULL COMMENT '通话时长,不足一分钟按一分钟计算',
      `callDurationExact` varchar(20) DEFAULT NULL COMMENT '准确的通话时长',
      `callType` varchar(16) DEFAULT NULL COMMENT '通话类型-本地通话:1,省内长途:2,国内长途:3,国际长途:4',
      `bizType` varchar(16) DEFAULT NULL COMMENT '业务类型-一般为语音电话',
      `fee` float DEFAULT '0' COMMENT '通话费用',
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=gbk; -- 指定字符集为gbk
    

    步骤2:

    Python连接MySQL的代码中,要指明使用utf-8或gbk字符集,即写成:

    conn = MySQLdb.connect(host="localhost",user="root",passwd="123456",db="test",charset='utf8')#注意添加charset=utf8或者gbk
    

    就能正确插入中文了。

    参考:http://www.iteye.com/topic/406843

    展开全文
  • python2 往mysql插入数据

    2018-06-29 12:17:17
    #coding=utf-8 import MySQLdb import datetime db = MySQLdb.connect("localhost","root","123456","test",charset = 'utf8') ...print("添加数据mysql成功了") print(datetime.datetime.now())
    #coding=utf-8
    import MySQLdb
    import datetime
    db = MySQLdb.connect("localhost","root","123456","test",charset = 'utf8')
    cursor = db.cursor()
    
    sql="sql语句"
    try:
    	# 执行sql语句
    	cursor.execute(sql)
    	# 提交到数据库执行
    	db.commit()
    except:
    	# Rollback in case there is any error
    	db.rollback()
    
    # 关闭数据库连接
    db.close()
    print("添加数据到mysql成功了")
    print(datetime.datetime.now())
    

    展开全文
  • 几天几天刚刚学习python,就动手练习了一下,主要是关于mysql数据库方向的。    我们都知道python的%通配符有:%d(整型),%s(字符型),%f(浮点型)。那么关于时间date的类型呢?    比如:我的项目要...

    几天几天刚刚学习python,就动手练习了一下,主要是关于mysql数据库方向的。

     

         我们都知道python的%通配符有:%d(整型),%s(字符型),%f(浮点型)。那么关于时间date的类型呢?

     

        比如:我的项目要往数据库中插入create_time和update_time,那就势必要引用现在的系统时间,经过大量的查找,终于发现往python是没有对应时间datetime的相关通配符的,那么我们要怎么实现呢。

     

       其实很简单,我们只需要把datetime转换成字符串类型的就行

     

       我的代码如下:

    def insertIntoChannel(self, user):
            conn = JDBCUtils.getConnection()
            cursor = conn.cursor()
            dt=datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
            cursor.execute("insert into user(id,age,name,create_time,update_time) \
                          values('%d','%d','%s','%s','%s')" % \
                           (user.getId(),user.getAge(), user.getName(),dt,dt))
            cursor.close()
            conn.commit()
            conn.close()
    

       

     

    展开全文
  • 1 使python脚本文件本身为utf8编码# -*- coding: utf-8 -*-2 使编译时文件也为utf8编码:import MySQLdb import pandas as pd import numpy as np3 MySQLDB上连接时也设置字符集为utf8编码:MySQLdb.connect(host='...

    1 使python脚本文件本身为utf8编码

    # -*- coding: utf-8 -*-

    2 使编译时文件也为utf8编码:

    import sys
    reload(sys)
    sys.setdefaultencoding('utf8')

    3 MySQLDB上连接时也设置字符集为utf8编码:

    MySQLdb.connect(host='localhost', user='root', passwd='xxx', db=DbName,charset='utf8')

    4 MySQL中表本身的编码都应为utf8编码

    如果上述条件均满足,则不会再出现插入中文到数据库时出现乱码的问题

    展开全文
  • 1. 连接mysql import pymysql db = pymysql.connect(host=‘localhost’,user=‘root’, password=‘123456’, port=3306, db=‘spiders’) cursor = db.cursor() sql = ‘select * from students;’ cursor.execute...
  • python实现往mysql数据库批量插入数据

    千次阅读 2020-08-01 21:51:08
    python往mysql插入数据首先必须要安装pymysql库,安装命令:pip install Pymysql,注意Pymysql中的"P"要大写 插入数据格式为:fsy001到fsy100,总共字符数位6位,为了保持总字符数不变,需要用到if判断 import ...
  • 如何python批量往mysql中插入测试数据

    千次阅读 2021-05-25 14:22:26
    是不是纠结的很,如何高效的在mysql中生成测试数据,辅助测试尤其重要 pymysql相关知识 pymysql.Connect()参数说明 host(str): MySQL服务器地址 port(int): MySQL服务器端口号 user(str): 用户名 passwd(str): 密码 ...
  • 主要介绍了python3实现往mysql中插入datetime类型的数据,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • python3往mysql中插入datetime类型的数据 例1:静态 import pymysql import time import datetime db=pymysql.connect(host='localhost',port=3306,user='root',password='Mysql',database='select_data',charset='...
  • 有时候接口调试,需要数据库导入测试数据,通常我们会手动写一些插入语句或者在controller里写一个批量插入的方法,但是总不得劲,比较繁琐。如今已经迈入人工智能的天下,还在用这样老土的方法,已经被时代所抛弃...
  • 今天,我在做项目(用Python语言存double,datetime类型数据)遇到一个问题,刚开始想的很复杂,一想Python没有double类型数据,怎么呢?网上资料也少,几乎找不到。 sql = “INSERT INTO EMPLOYEE(FIRST_NAME,...
  • 很多时候我们在爬取数据存储的时候都需要将当前时间作为一个依据,在python里面没有时间类型可以直接拿来就用的。我们只需要在存储之前将时间类型稍作修饰就行。 datetime.datetime.now().strftime("%Y-%m-%d...
  • 今天小编就为大家分享一篇在python中使用pymysql往mysql数据库中插入(insert)数据实例。具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • from pymysql import * def main(): # 创建connection连接 conn = connect(host='', port=3306, database='', user='', password='', charset='utf8') # 获取cursor对象 cs1 = conn.cu...
  • 异常:'latin-1' codec can't encode characters in position ...用Python通过pymysql往MySQL数据库中插入数据时,插入的字段含有中文,出现异常: 'latin-1' codec can't encode characters in position 62-66: ord...

空空如也

空空如也

1 2 3 4
收藏数 76
精华内容 30
关键字:

python往mysql插数据

python 订阅
mysql 订阅