python切割主持人的字段,并写入数据库

import pymysql

leader_Name=[]
def pro_main():
    connect = pymysql.Connect(
        host='10.123.123.123',
        port=3306,
        user='root',
        passwd='hahh@123',
        db='sh6y',
        charset='utf8'
    )

    insql="SELECT NULL AS auto_id, '主持人' AS control_name, section_name, admission_id, content_text, A.file_name, file_id, A.doc_name, NULL AS upd_date FROM 10001_rough_base A LEFT JOIN 10001_doc_type_rule_tb B ON A.file_name = B.doc_name WHERE file_id NOT IN ( SELECT file_id FROM 10001_rough_base A LEFT JOIN 10001_doc_type_rule_tb B ON A.file_name = B.doc_name WHERE B.official_no = 'EMR100011' AND A.control_name = '主持人' GROUP BY file_id ) AND B.official_no = 'EMR100011' AND content_text LIKE '%主持人%' GROUP BY file_id"
    outsql="INSERT INTO 10001_rough_base VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s)"
    # 获取连接器执行sql
    with connect.cursor() as base_cursor:
        base_cursor.execute(insql)
        res = base_cursor.fetchall()

        for i in range(len(res)):
                # print(r[4])
                Get_leader_Name(res[i][4])
                auto_id = res[i][0]
                control_name = res[i][1]
                section_name = res[i][2]
                admission_id = res[i][3]
                file_name =res[i][5]
                file_id =res[i][6]
                doc_name = res[i][7]
                upd_date = res[i][8]
                content_text=str(leader_Name[i]).strip()
                print(file_id)
                print(str(leader_Name[i]).strip())
                # 获取数组中的元素将其插入数据库中
                with connect.cursor() as base_cursor:
                    base_cursor.execute(outsql,[auto_id, control_name, section_name, admission_id, content_text, file_name,file_id, doc_name, upd_date])
                    connect.commit()
        connect.close()


# 此方法定义特殊处理:提取主任姓名
def Get_leader_Name(text):
    # 首先判断长度大于0再接下来做
    if len(str(text).strip()) >0:
        # 1、(主持人)情况的解决,如果主持人前面有括号
        if '(主持人)' in str(text):
            leader_name1 = str(text).split('(主持人)', 1)[0]
            leader_Name.append(leader_name1)
            #print(leader_name1+"---- 第一种情况")
        else:
            # 2 否则 主持人在内容中,使用另外一种切割办法
            str_contain_leader = str(text).split('主持人', 1)[1]
            leader_name2 = str_contain_leader.split(':', 1)[0][:-2]    #以:为切割依据
            leader_Name.append(leader_name2)
            #print(leader_name2+"---- 第二种情况")


if __name__ == '__main__':
    pro_main()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值