当前位置: 首页 > news >正文

移动端网站建设需要注意哪些问题德阳住房和城乡建设厅网站

移动端网站建设需要注意哪些问题,德阳住房和城乡建设厅网站,广东省著名商标在什么网站做,网络游戏名字Python操作MySQL数据库详细案例一、前言二、数据准备三、建立数据库四、处理和上传数据五、下载数据六、完整项目数据和代码一、前言 本文通过案例讲解如何使用Python操作MySQL数据库。具体任务为#xff1a;假设你已经了解MySQL和知识图谱标注工具Brat#xff0c;将Brat标注… Python操作MySQL数据库详细案例一、前言二、数据准备三、建立数据库四、处理和上传数据五、下载数据六、完整项目数据和代码一、前言 本文通过案例讲解如何使用Python操作MySQL数据库。具体任务为假设你已经了解MySQL和知识图谱标注工具Brat将Brat标注的结果上传到MySQL。 在知识图谱的文本标注任务中需要将数据按照事先决定的标注规则进行人工标注。Brat是一种比较著名的标注工具但是目前不支持Windows系统你可以安装虚拟机使用该工具。本文已经完成了一项基于Windows、Python3.7的标注软件制作工作你可以点击 实体关系文本标注工具 进行查看。 二、数据准备 本文从知网下载了一些关于医学文章的摘要提前设置了标注规则例如实体类别、关系等。通过Brat工具标注该文本数据并得到输出标注好的结果文件该文件共有2042行以T开头表示实体以R开头表示关系该文件是对网络图结构的文本表述。 三、建立数据库 在开始Python代码任务之前你需要对数据库有基础的了解比如你已经具备使用SQL语言操作MySQL数据库的能力。 1、将MySQL中的操作定义为python函数基于MySQL80那么就可以直接调用该函数来操作数据库。 import pandas as pd import pymysqlprint(1)def mycursor(db_name mysql80):connection pymysql.connect(hostlocalhost,userroot,port 3308,password,#123456database db_name,charsetutf8mb4,cursorclasspymysql.cursors.DictCursor)cursor connection.cursor()return cursor, connectiondef use(db_name):切换数据库返回游标return mycursor(db_name)def create_database(db_name):新建数据库sql fcreate database if not exists {db_name};cursor.execute(sql)def create_table(tbl_name):新建数据表sql fcreate table if not exists {tbl_name};cursor.execute(sql) def drop_database(db_name):删除数据库sql fdrop database if exists {db_name};cursor.execute(sql)def drop_table(tbl_name):删除数据表sql fdrop table if exists {tbl_name};cursor.execute(sql)def query(sql):以数据框形式返回查询据结果cursor.execute(sql)data cursor.fetchall() # 以元组形式返回查询数据header [t[0] for t in cursor.description]df pd.DataFrame(list(data), columnsheader) # pd.DataFrem 对列表具有更好的兼容性# return dfprint(df)def show_databases():查看服务器上的所有数据库sql show databases;return query(sql)def select_database():查看当前数据库sql select database();return query(sql)def show_tables():查看当前数据库中所有的表sql show tables;return query(sql)2、创建数据库 #选择需要使用的数据库此前需要创建数据库cursor, db use(mysql) #默认设置不要更改dbname kgg #此处更改为需要创建的数据库名 create_database(dbname) cursor, db use(dbname)3、建立数据库中各表 # 建实体类表 sqltb1 create table entity(id int auto_increment primary key comment 实体类编号,name varchar(20) comment 实体类名 ) comment 实体类表;cursor.execute(sqltb1)# 插入数据 sqlin1 insert into entity values (1, 病症),(2, 病名),(3, 诊断方案),(4, 治疗方案),(5, 药名),(6, 其它);cursor.execute(sqlin1) db.commit() #事务 # 检查是否传递成功 sqlset select * from entity ; query(sqlset)#-------------------------------------------------------------------------# 创建关系表格 sqltb2 create table relation(id int auto_increment primary key comment 关系编号,name varchar(20) comment 关系名 ) comment 关系表;cursor.execute(sqltb2)#插入数据 sqlin2 insert into relation values (1, 包含),(2, 治疗),(3, 危险因素),(4, 辅助诊断),(5, 特征),(6, 并发),(7, 别名),(8, 作用),(9, 条件);cursor.execute(sqlin2) db.commit() #事务 #检查是否传递成功 sqlset select * from relation ; query(sqlset)#-------------------------------------------------------------------------# 创建实体表 sqltb3 create table entitymin(id int auto_increment primary key comment 编号,name varchar(50) comment 实体名 ) comment 实体表;cursor.execute(sqltb3) db.commit() #事务#------------------------------------------------------------------------- 4、建立一些交叉表 #建立 实体-关系库并设置主键外键关联# 创建实体表 sqltb5 create table entityrela(id int auto_increment primary key comment 编号,headclass int comment 头实体类,headentity int comment 头实体,relation int comment 关系,tailentity int comment 尾实体,tailclass int comment 尾实体类 ) comment 实体和关系表;cursor.execute(sqltb5) db.commit() #事务#------------------------------------------------------------------------- #创建链接该表子表、外键与另外三张表父表、主键链接sqlkey alter table entityrela add constraint encl_he_en_id foreign key (headclass) references entity (id);cursor.execute(sqlkey)sqlkey alter table entityrela add constraint enla_he_enmin_id foreign key (headentity) references entitymin (id);cursor.execute(sqlkey)sqlkey alter table entityrela add constraint enla_re_re_id foreign key (relation) references relation (id);cursor.execute(sqlkey)sqlkey alter table entityrela add constraint enla_ta_enmin_id foreign key (tailentity) references entitymin (id);cursor.execute(sqlkey)sqlkey alter table entityrela add constraint enla_ta_en_id foreign key (tailclass) references entity (id);cursor.execute(sqlkey) db.commit() #事务#------------------------------------------------------------------------- 5、查看创建情况 # 查看该库中所有表格、查看表是否创建成功 show_tables()#------------------------------------------------------------------------- # end6、此外若你在任何操作过程中需要清空数据库你可以 # # #格式化数据库,取消下面三行注释运行后便清空数据库。 # drop_database(dbname) # create_database(dbname) # print(数据库格式化)四、处理和上传数据 创建好数据库后便可以对数据进行处理并将数据上传到数据库中。 1、同上连接数据库并定义工具函数。 # 将数据添加到数据库数据库已经提前建好import pandas as pd import pymysql import redef mycursor(db_name mysql80):connection pymysql.connect(hostlocalhost,userroot,password,#123456port 3308,database db_name,charsetutf8mb4,cursorclasspymysql.cursors.DictCursor)cursor connection.cursor()return cursor, connectiondef use(db_name):切换数据库返回游标return mycursor(db_name)def query(sql):以数据框形式返回查询据结果cursor.execute(sql)data cursor.fetchall() # 以元组形式返回查询数据header [t[0] for t in cursor.description]df pd.DataFrame(list(data), columnsheader) # pd.DataFrem 对列表具有更好的兼容性return df# print(df)def show_databases():查看服务器上的所有数据库sql show databases;return query(sql)def select_database():查看当前数据库sql select database();return query(sql)def show_tables():查看当前数据库中所有的表sql show tables;return query(sql)cursor, db use(mysql) #默认设置不要更改 dbname kgg cursor, db use(dbname)#------------------------------------- 2、数据处理-实体 # 将ann文件数据传入暂以txt格式传入 txtfile open(rC:\Users\DELL\Desktop\mysql数据库\0001-0500.ann, r, encodingutf-8).readlines() # print(txtfile[:3])#将实体与关系数据分开 entity [] relation [] for i in txtfile:if i[0] T:entity.append(i)else:relation.append(i)# print(relation)#将实体名称、类别与编号提取出来 entity [i.strip(\n).split(\t) for i in entity] entity [[i[0],i[1].split( )[0], i[-1]] for i in entity] # print(entity[:5])3、上传实体表中数据 #------------------------------------------------------------------------- #在实体表中插入数据 # #提取实体名去重;需要提前查看数据库已有的实体名称 需要表名称 entitymin [i[-1] for i in entity] entitymin list(set(entitymin)) # print(entitymin[:5])for q in entitymin:sqlq select name from entitymin where name (%s);TF cursor.execute(sqlq, q)if TF 0: #存在则为1不存在为0;不存在则添加 sqlin2 insert into entitymin values (null, %s) ;cursor.execute(sqlin2, q) db.commit() #事务 # 查看数据效果 sqlq select * from entitymin; query(sqlq) 4、数据处理-5元组关系 )#------------------------------------------------------------------------- #将三元组提取出来 relation [re.split([\tA: ],i) for i in relation] relation [[i[1],i[4],i[7]] for i in relation] # print(relation[:5])dicen dict([(病症,1),(病名,2),(诊断方案,3),(治疗方案,4),(药名,5),(其它,6)]) dicre dict([(包含,1),(治疗,2),(危险因素,3),(辅助诊断,4),(特征,5),(并发,6),(别名,7),(作用,8),(条件,9)]) # print(dicre[包含])# #将三元组中的实体编号替换成实体名称 for r in relation:r[0] dicre[r[0]]for e in entity:if r[1] e[0]:r[1] e[-1]r.insert(0,e[1])if r[-1] e[0]:r[-1] e[-1]r.append(e[1]) # print(relation[:5])#编码化---[头实体类, 头实体,关系类,尾实体, 尾实体类] enre [] for j in relation:j[0] dicen[j[0]]j[-1] dicen[j[-1]]sqlchaen select id from entitymin where name (%s);cursor.execute(sqlchaen, j[2])j[2] cursor.fetchone()[id]sqlchaen select id from entitymin where name (%s);cursor.execute(sqlchaen, j[3])j[3] cursor.fetchone()[id]enre.append([j[0],j[2],j[1],j[3],j[4]]) print(enre[-5:]) #传入实体-关系库5、上传5元组数据 #插入实体-关系库数据并创建链接该表子表、外键与另外三张表父表、主键链接# #插入数据 for en in enre:sqlin2 insert into entityrela values (null, %s, %s, %s, %s, %s) ;cursor.execute(sqlin2, (en[0],en[1],en[2],en[3],en[4])) db.commit() #事务 print(ok)#------------------------------------------------------------------------- #清除重复数据并id排序 sql delete p1 from entityrela p1,entityrela p2 where (p1.headclass p2.headclassand p1.headentity p2.headentityand p1.relation p2.relationand p1.tailentity p2.tailentityand p1.tailclass p2.tailclassand p1.id p2.id);cursor.execute(sql)sql ALTER TABLE entityrela DROP id;cursor.execute(sql) sql ALTER TABLE entityrela ADD id MEDIUMINT( 8 ) NOT NULL FIRST;cursor.execute(sql) sql ALTER TABLE entityrela MODIFY COLUMN id MEDIUMINT( 8 ) NOT NULL AUTO_INCREMENT,ADD PRIMARY KEY(id);cursor.execute(sql) db.commit() #事务 cursor.close() #------------------------------------------------------------------------- #end 其中db.commit() 表示该事务要么全部成功要么全部不执行。cursor.close()表示关闭数据库。 6、在MySQL中查看执行结果 1在MySQL中查看所有数据库 2使用本文创建的kgg数据库并查看库内所有表 3检索任意表查看数据   以上3步表示数据库创建成功并成功写入数据。 五、下载数据 假设我们已经创建好数据库以及上传了数据。很久以后我们需要从数据库中下载数据进行分析或者分享给他人那么本文在这里考虑了这一情况。 1、连接数据库定义工具函数 # 从数据库中调取数据以中文显示import pandas as pd import pymysqldef mycursor(db_name mysql80):connection pymysql.connect(hostlocalhost,userroot,password, #123456port 3308,database db_name,charsetutf8mb4,cursorclasspymysql.cursors.DictCursor)cursor connection.cursor()return cursor, connectiondef use(db_name):切换数据库返回游标return mycursor(db_name)def query(sql):以数据框形式返回查询据结果cursor.execute(sql)data cursor.fetchall() # 以元组形式返回查询数据header [t[0] for t in cursor.description]df pd.DataFrame(list(data), columnsheader) # pd.DataFrem 对列表具有更好的兼容性return df# print(df)def show_databases():查看服务器上的所有数据库sql show databases;return query(sql)def select_database():查看当前数据库sql select database();return query(sql)def show_tables():查看当前数据库中所有的表sql show tables;return query(sql) dbname mysql cursor, db use(dbname) dbname kgg cursor, db use(dbname)# print(show_tables())2、选择数据并设计输出结构 #a.headentity , sql select m.name from entityrela a left outer join entitymin m on a.headentity m.id i_s list(query(sql)[name])sql select m.name from entityrela a left outer join entitymin m on a.tailentity m.id j_s list(query(sql)[name])sql select m.name from entityrela a left outer join relation m on a.relation m.id k_s list(query(sql)[name])eql select m.name from entityrela a left outer join entity m on a.headclass m.id ek_1 list(query(eql)[name])eq2 select m.name from entityrela a left outer join entity m on a.tailclass m.id ek_2 list(query(eq2)[name])result [[i,j,k,w,p] for i,j,k,w,p in zip(i_s,ek_1,k_s,ek_2,j_s)] print(result[:5]) cursor.close()3、设置保存文件地址并下载 f open(rC:\Users\DELL\Desktop\neo4j_python\data\4.csv,w, encodingutf-8) for i in result:f.write(\i[0]\,\i[1]\,\i[2]\,\i[3]\,\i[4]\\n) f.close() print(ok)六、完整项目数据和代码 以下任意方式皆可 1、评论、留言邮箱账号博主定期回复。 2、点击GitHub-python_mysql (或者访问 https://github.com/chenyiadam/python_mysql.git ) 进行下载
http://www.hkea.cn/news/14266624/

相关文章:

  • 枣庄企业网站建设3d网页游戏开服表
  • 郑州哪家公司给国外做网站wordpress漏洞框架
  • 购物网站开发的背景介绍网络营销推广技术分析
  • 大连模板网建站做网站要固定电话
  • 网站开发要考什么证公益网站设计
  • 浏阳市网站建设如何开发一款游戏
  • 江苏弘盛建设工程集团有限公司网站jsp网站开发环境搭建
  • 寻找郑州网站优化公司建设个人博客网站
  • 咸阳公司做网站学ui设计难不难
  • 溧阳手机网站设计国内永久免费crm不实名认证
  • 宣传海报在什么网站做脑叶公司手机版下载
  • 做网站一般用什么配置的电脑长沙3合1网站建设公司
  • 怎样在手机上制作网站钉钉网站建设服务协议
  • 怎么在网站上做签到安徽合肥中国建设银行网站首页
  • 移动应用开发公司网站模板网站域名和备案公司可以不一样么
  • 淄博微信网站建设wordpress修改侧边栏
  • 四站合一网站建设wordpress添加主题设置功能
  • 企业门户网站模板环保网站建设说明
  • 内网怎么做网站服务器做网站框架可用jpg图吗
  • 广东专业网站优化公司报价免费企业宣传片制作软件
  • 北京网站排行德阳公司网站建设
  • 网站建设需要在网络上如何实现北京软件开发公司企云云
  • 网站架构搭建广告网站模板下载不了
  • 免费做漫画网站选thinkphp还是wordpress
  • 湘潭响塘乡建设局网站thinkphp5来做网站吗
  • 网站开发配置状态报告wordpress phonegap
  • 网页 网 址网站区别上海殷行建设网站
  • 网络营销导向网站建设的基础小型外包公司在哪找项目
  • 开发网站代码量南京网站排名提升
  • 营销型网站建设要多少钱说几个手机可以看的网站