|
今天用python-MySQLdb模块插入中文,把收集到nginx 、IP地址做分析然后入库处理,做出图分析,插入中文的时候遇到点小问题:最初的格式是这样的:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| [iyunv@mail python]# cat queryadd.py
#!/usr/bin/env python
#coding=utf-8
import json
import MySQLdb
def GetAddress():
pvdic={}
f = open('/tmp/output.txt','r')
n = 0
for line in f:
add = line.split()
addressname=add[1].strip('\n')
conn=MySQLdb.connect(host='192.168.10.205',user='test',passwd='123456',db='yizhan',port=3306,use_unicode=1,charset="utf8")
cursor=conn.cursor()
cursor.execute("insert into app01_map(address) values(%s)"%(addressname))
conn.commit()
cursor.close()
conn.close()
print addressname
f.close()
if __name__=='__main__':
GetAddress()
|
这个格式,插入数字和英文没有问题,但是插入中文就报错:于是下面是修改:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| [iyunv@mail python]# cat test_mysql.py
#!/usr/bin/env python
#coding=utf-8
import json
import MySQLdb
def GetAddress():
addressname="南宁"
conn=MySQLdb.connect(host='192.168.10.205',user='test',passwd='123456',db='yizhan',port=3306,use_unicode=1,charset="utf8")
cursor=conn.cursor()
query = "insert into app01_map(address) values(%s)"
cursor.execute(query,addressname)
conn.commit()
cursor.close()
conn.close()
print addressname
if __name__=='__main__':
GetAddress()
|
插入成功:
[iyunv@mail python]# python test_mysql.py
|
|