使用python读取csv文件,并将数据更新至mysql
2011-09-21 14:45
1606 查看
import csv, MySQLdb, sys
# 处理数据库的函数
def mysql_database(sql_str, values):
conn = MySQLdb.connect(host='192.168.2.20', user='root',passwd='123456')
cursor = conn.cursor()
conn.select_db('eldorajob')
cursor.executemany(sql_str, values)
conn.commit()
cursor.close()
conn.close()
def hardSkillDomain(reader):
values=[]
for obj1 in reader:
values.append((obj1['HardSkillDomainID'], obj1['DomainName']))
return values
def domain(reader):
values=[]
for obj1 in reader:
values.append((obj1['DomainID'], mdcode(obj1['DomainName'])))
return values
# 处理转码的函数
def mdcode(str1):
for c in ('utf-8', 'gbk', 'gb2312'):
try:
return str1.decode(c).encode('utf-8')
except:
pass
return 'unknown'
#--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
if __name__ == "__main__":
FILE_PATH = 'd:/csv/Domain_Table_Data.csv'
INSERT_SQL = {'hardskilldomain' : 'insert into modules_hardskilldomain values(%s, %s)',
'domain' : 'insert into modules_domain values(%s, %s)'}
INSERT_VALUES = {'hardskilldomain' : hardSkillDomain,
'domain' : domain}
try:
# get connection
fd = open(FILE_PATH)
dialect = csv.Sniffer().sniff(fd.readline())
fd.seek(0)
reader = csv.DictReader(fd, dialect = dialect)
# insert into mysql database
mysql_database(INSERT_SQL['domain'], INSERT_VALUES['domain'](reader))
except:
print sys.exc_info()[0],sys.exc_info()[1]
finally:
fd.close()
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
要处理的csv文件内容(第一行对应数据表中的字段名):
DomainID,DomainName
1,Agroalimentaire
2,Automobile
3,Banque/Finance
4,Biotechnologie
5,Chimie
6,Pharmaceutique
7,Enseignement
8,Edition/Publication
9,Informatique
10,Ingénierie
11,Métaux & Minéraux
12,Gestion des déchets
13,Services aux entreprises
14,Services aux particuliers
15,Institutionnel
# 处理数据库的函数
def mysql_database(sql_str, values):
conn = MySQLdb.connect(host='192.168.2.20', user='root',passwd='123456')
cursor = conn.cursor()
conn.select_db('eldorajob')
cursor.executemany(sql_str, values)
conn.commit()
cursor.close()
conn.close()
def hardSkillDomain(reader):
values=[]
for obj1 in reader:
values.append((obj1['HardSkillDomainID'], obj1['DomainName']))
return values
def domain(reader):
values=[]
for obj1 in reader:
values.append((obj1['DomainID'], mdcode(obj1['DomainName'])))
return values
# 处理转码的函数
def mdcode(str1):
for c in ('utf-8', 'gbk', 'gb2312'):
try:
return str1.decode(c).encode('utf-8')
except:
pass
return 'unknown'
#--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
if __name__ == "__main__":
FILE_PATH = 'd:/csv/Domain_Table_Data.csv'
INSERT_SQL = {'hardskilldomain' : 'insert into modules_hardskilldomain values(%s, %s)',
'domain' : 'insert into modules_domain values(%s, %s)'}
INSERT_VALUES = {'hardskilldomain' : hardSkillDomain,
'domain' : domain}
try:
# get connection
fd = open(FILE_PATH)
dialect = csv.Sniffer().sniff(fd.readline())
fd.seek(0)
reader = csv.DictReader(fd, dialect = dialect)
# insert into mysql database
mysql_database(INSERT_SQL['domain'], INSERT_VALUES['domain'](reader))
except:
print sys.exc_info()[0],sys.exc_info()[1]
finally:
fd.close()
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
要处理的csv文件内容(第一行对应数据表中的字段名):
DomainID,DomainName
1,Agroalimentaire
2,Automobile
3,Banque/Finance
4,Biotechnologie
5,Chimie
6,Pharmaceutique
7,Enseignement
8,Edition/Publication
9,Informatique
10,Ingénierie
11,Métaux & Minéraux
12,Gestion des déchets
13,Services aux entreprises
14,Services aux particuliers
15,Institutionnel
相关文章推荐
- Python使用pandas & pymysql读取MySQL数据到csv文件中
- 使用python pandas读取csv文件数据
- Python导出数据到Excel可读取的CSV文件的方法
- Python使用pandas读取Excel文件数据和预处理小案例
- 使用JDBC读取本地的Excel文件并批量更新数据
- php读取含有3w条以上数据的csv文件,并选择性将相应字段的数据导入至mysql
- 用两种不同的方法导出ORACLE 查询数据为CSV 文件 (python 代码 与 使用 utl_file 包)
- python 读取.csv文件数据到数组(矩阵)的实例讲解
- 从CSV文件中读取数据,使用逗号','分割问题
- python3将csv文件中的两列数据读取出来,并且按行写入txt文本之中
- Python webdriver 读取本地csv文件中数据 提示:IOError: [Errno 2] No such file or directory
- MySQL 直接读取csv文件数据到表中
- MySql 使用存储过程和游标读取并更新数据
- python数据持久化到文件并读取:pickle的使用
- Oracle 使用PL/SQL 读取CSV文件,将数据拆分到表中丢失数据行
- php使用指定编码导出mysql数据到csv文件的方法
- 【Python】使用pandas库从MySQL中读取数据到excel中
- 使用Python定时更新Mysql数据
- 从CSV文件中读取数据,使用逗号','分割问题
- 使用python读取csv文件快速插入数据库的实例