从0开始知识图谱搭建_任务1_text数据导入到 Mysql

最近在学习搭建一个知识图谱,分享一个数据导入到
MySQL的方式。
txt文件数据样例:
在这里插入图片描述

方法一: 利用sqlyog工具

  1. 创建表,例如:创建了表testkgphone 在这里插入图片描述
  2. 查询语句见下面的代码块,F9执行。
LOAD DATA LOCAL INFILE 'H:\\BaiduNetdisk\\贪心学院知识图谱风控\\任务18 作业1数据和说明\\hw1\\phone.txt'
INTO TABLE testkgphone
FIELDS TERMINATED BY ',' 
LINES TERMINATED BY '\n';	
  1. 查看结果在这里插入图片描述
    注:如果出现中文乱码问题,记得看编码规范是否异常
    各种字符参数应统一为utf8时.

可以进行单个设置:

SET character_set_client = utf8 ;
SET character_set_connection = utf8 ;
SET character_set_database = utf8 ;
SET character_set_results = utf8 ;
SET character_set_server = utf8 ;
SET collation_connection = utf8 ;
SET collation_database = utf8 ;
SET collation_server = utf8 ;

再使用上面步骤2 的代码块
这样再导入的时候就OK了

方法二:python连接mysql导入text数据

要是90多万条数据还挺慢的,不过能用,代码如下,以后慢慢优化吧~

import pymysql
conn = pymysql.connect(host="ip地址", port=3306, user="root", passwd="密码", db="pytest")
# 使用cursor()方法获取操作游标
cursor = conn.cursor()

#第一步:创建表
sql_table1 = """CREATE TABLE Phone
(
Id INT primary key AUTO_INCREMENT,
from_phone VARCHAR(255),
to_phone VARCHAR(255),
start_time DATETIME,
end_time DATETIME
)ENGINE=InnoDB DEFAULT CHARSET=utf8;"""#utf8防止出现乱码,id为自增主键


cursor.execute("DROP TABLE IF EXISTS Phone")


cursor.execute(sql_table1)

#第二步导入数据
#通过open()方法以只读的方式打开文件,编码格式为UTF-8
file = open("H:\BaiduNetdisk\贪心学院知识图谱风控\任务18 作业1数据和说明\hw1\phone1.txt", 'r', encoding='UTF-8')


lines = file.readlines()
#如果lines为真,执行循环的内容
data = cursor.fetchall()

if lines:
    for line in lines:      #lines是一个列表,列表中的每隔元素就是txt文件中的一行数据
        # print(line)         #这一步是为了验证是否能如期获取到列表
        line = line.strip('\n').split(',')   #strip()去掉字符串头尾的符号,通过","将每行数据拆分
        a = line[0]         #我的txt文件中每行三个元素,所以将三个元素分别赋值给变量abc
        b = line[1]
        c = line[2]
        d = line[3]
        # print(a,b,c,d)
        sql = "insert into Phone(from_phone,to_phone,start_time ,end_time) values(%s,%s,%s,%s)"  #数据库数据插入语句
        param = (a, b, c, d)                            #param参数是要输入的数据
        cursor.execute(sql, param)              #cursor.execute(sql,param)方法执行插入语句


conn.commit()								 #提交
file.close()                                  #关闭所有的连接
cursor.close()
conn.close()
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值