今天用python-MySQLdb模塊插入中文,把收集到nginx 、IP地址作分析而後入庫處理,作出圖分析,插入中文的時候遇到點小問題:python
最初的格式是這樣的:mysql
[root@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()
這個格式,插入數字和英文沒有問題,可是插入中文就報錯:因而下面是修改:
nginx
[root@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()
插入成功:sql
[root@mail python]# python test_mysql.py json
南寧app