Python在工作中的應用2 初始化資料

2021-10-04 10:02:47 字數 2116 閱讀 1979

應用場景:運費規則優化,在原先的運費主表上新增乙個字段基數base_num,然後主表每條資料會有最多5條明細來記錄體積-係數資訊(明細表為此次新加)

業務方配置的每條運費規則的基數跟係數資訊(a到i的列的資料是系統已經有的,我讓運維從線下庫匯出來的):

現在用python將資料初始化為sql:

import csv,math

#業務方配置好的資料

file_to_read=

open

('c:\\users\\btr\\desktop\\ff.csv'

,'r'

,newline='')

reader=csv.

reader

(file_to_read)

#要儲存的資料

file_to_write=

open

('c:\\users\\btr\\desktop\\basenum.csv'

,'w'

,newline=

'',encoding=

'utf-8'

)writer=csv.

writer

(file_to_write)

file_to_write_coefficient=

open

('c:\\users\\btr\\desktop\\coefficient.csv'

,'w'

,newline=

'',encoding=

'utf-8'

)write_coefficient=csv.

writer

(file_to_write_coefficient)

write_coefficient.

writerow([

'insert into tms_coefficient_freight_config (freight_config_id,initial_volume,termination_volume,coefficient,active) values'])

for i in reader:

if(i[0]

=='id'):

continue

base_num=i[9]

unit_price=i[3]

if(i[9]

in(none,"")

):base_num=0if

(i[3]in

(none,"")

):unit_price=

0

writer.

writerow([

'update tms_freight_config set base_num='

+base_num+

',unit_price='

+unit_price+

' where id='

+i[0]+

' ;'])

for j in

range(10

,25,3

):if(i[j]

in(none,

"") or i[j+1]

=='0'):

continue

write_coefficient.

writerow([

'('+

str(i[0]

)+','+

str(i[j])+

','+

str(i[j+1]

)+','+

str(i[j+2]

)+',1'

+'),'])

file_to_read.

close()

file_to_write.

close()

print

("資料處理完成 "

)

結果:

MYSQL在工作中的應用

1 多表操作,必須開啟事務 2 陣列儲存db可以使用json序列化。主要是考慮json是比較通用的資料格式,如果使用分隔符拼接必須單獨約定乙個分隔符。choicestr fmt.sprintf v,choice strings.trimright choicestr,choicebyte,err j...

策略模式在工作中應用

物流系統要新增包裹資料,現在物流的上游有三種包裹 線上的包裹,線下的包裹,外部的包裹,每種包裹在新增時會有些不同的操作,比如線上線下的包裹新增後要發訊息給訂單履約中心方便監控,線上包裹新增時要判斷包裹是否需要抽檢,釘箱,並生成相關的資料等。每種包裹都有其特殊的操作,從系統維護的角度上說,可以使用策略...

策略模式在工作中的應用

最近在日常工作過程中接到乙個任務 需要提供乙個介面,根據不同的意圖返回給客服端不同的答案,每個意圖去識別答案的演算法都有各自不同的邏輯。作為乙個合格的crud程式設計師,接到這個需求腦袋裡的第一反應就是用if else去實現,但是這樣寫 太醜陋了,每個else裡面都會有大量的業務邏輯,對於後期接坑的...