溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Python 按照某種匹配條件拆分字符串并存儲(chǔ)數(shù)據(jù)到數(shù)據(jù)庫(kù) 實(shí)例

發(fā)布時(shí)間:2020-07-23 13:23:13 來源:網(wǎng)絡(luò) 閱讀:585 作者:insist_way 欄目:編程語言

需求:

提供如下的txt文件


測(cè)試u047【123456@qq.com】

自主招生3

測(cè)試u008【456789@qq.com】

自主招生6


需要將其拆分為如下結(jié)果:

id? qq? ????????????????????????username

1? ?123456@qq.com? ?測(cè)試u047

2? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??自主招生3

3? ?456789@qq.com? ?測(cè)試u008

4? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??自主招生6


實(shí)現(xiàn)比較簡(jiǎn)單,按照 【? 作為匹配條件,然后做字符串的截取,最后存儲(chǔ)到數(shù)據(jù)庫(kù)即可,代碼如下:


#處理53數(shù)據(jù)??測(cè)試u008【456789@qq.com】

import pymysql

#Python3環(huán)境


def Handle_str(str1):

? ? pos = str1.find('【')

? ? if pos > 0:

? ? ? ? QQ = str1[pos+1:-2]

? ? ? ? names = str1[:pos]

? ? ? ? return QQ,names

? ? else:

? ? ? ? return ''


f = open('phone53')

data = f.readlines()


db = pymysql.connect(host='xxx', user='lizibin', passwd='xxx', db='crm', charset='utf8',connect_timeout=10)

cursor = db.cursor()


try:

? ? for i in data:

? ? ? ? pos = i.find('【')

? ? ? ? if pos > 0:

? ? ? ? ? ? QQ,names = Handle_str(i)

? ? ? ? ? ? sql = 'insert into phone53(qq,username) values("%s","%s");' % (QQ,names)

? ? ? ? ? ? cursor.execute(sql)

? ? ? ? ? ? db.commit()? #如果發(fā)現(xiàn)數(shù)據(jù)表的id自增了,但卻沒有數(shù)據(jù)就要考慮是否為該原因


? ? ? ? else:

? ? ? ? ? ? sql = 'insert into phone53(username) values("%s");' % (i)

? ? ? ? ? ? cursor.execute(sql)

? ? ? ? ? ? db.commit()


except Exception as e:

? ? print(e)


db.close()

f.close()


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI