安装pymysql

https://github.com/PyMySQL/PyMySQL

这里我是使用虚拟环境来安装的,随意即可

$ cd C:\python\venv\Lee\Scripts
$ python -m pip install PyMySQL

新建一个测试用的sql表

SET FOREIGN_KEY_CHECKS=0;

-- ----------------------------
-- Table structure for myfund
-- ----------------------------
DROP TABLE IF EXISTS `myfund`;
CREATE TABLE `myfund` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `fcode` varchar(255) DEFAULT NULL,
  `fname` varchar(255) DEFAULT NULL,
  `NAV` varchar(255) DEFAULT NULL,
  `ACCNAV` varchar(255) DEFAULT NULL,
  `updatetime` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=29 DEFAULT CHARSET=utf8;

EXAMPLE

https://github.com/PyMySQL/PyMySQL

Common/config.py

dbconfig = {
    'host': 'localhost',
    'port': 3306,
    'user': 'root',
    'password': 'root',
    'db': 'test',
    'charset': 'utf8'
}

index.py

import pymysql
from pymysql.cursors import Cursor
from Common.config import dbconfig

result     =  [{'fcode': '167301', 'fname': '方正富邦保险主题指数分级', 'NAV': '1.3760', 'ACCNAV': '1.4410', 'updatetime': '2017-12-25 00:00:00'},
               {'fcode': '003886', 'fname': '汇安丰利混合A估值图基金吧', 'NAV': '1.3760', 'ACCNAV': '1.4410', 'updatetime': '2017-12-25 00:00:00'}]
connection = pymysql.connect(**dbconfig)
cursor     = Cursor(connection)

cursor.executemany('''
    INSERT INTO myfund(fcode, fname, NAV, ACCNAV, updatetime) 
    VALUES(%(fcode)s, %(fname)s, %(NAV)s, %(ACCNAV)s, %(updatetime)s)
    ON DUPLICATE KEY UPDATE `updatetime` = %(updatetime)s, `NAV` = %(NAV)s, `ACCNAV` = %(ACCNAV)s
''', result)
connection.commit()
connection.close()

坑爹记录

1、插入数据库的时候,请注意UTF-8的问题。也就是数据库和数据表都应该设置为UTF-8

alter table <表名> convert to character set utf8

2、py中的'''sql语句'''不要乱来。

results matching ""

    No results matching ""