我有一個字符串像rdb_master_mongodb
其中rdb_
是固定的,master
是它可以是任何東西,mongodb
可以是一間mysql
,mongodb
,postgres
,mssql
或bdb
數據庫名稱。我需要從myDict[master][mongodb]
中的值中獲取該字符串的值。爲了得到這個,我需要分割字符串rdb_master_mongodb
並得到master
和mongodb
的值。我無法使用拆分,因爲有時字符串變成rdb_master_test_mongodb
。因此我必須使用endswith
才能得到確切的關鍵。 Howeveer,endswith
不能在列表上工作。我需要從元組中獲得匹配的元組值。現在我這樣做:Python字典優化這個腳本
import re
name = 'rdb_master_mongodb'
s = re.sub('rdb_', "", name)
VALID_DB = ('mysql', 'postgres', 'mongodb', 'mssql', 'bdb')
(a, b, c, d, e) = VALID_DB
if s.endswith(a):
db = a
if s.endswith(b):
db = b
if s.endswith(c):
db = c
if s.endswith(d):
db = d
if s.endswith(e):
db = e
db_name = re.sub('_'+db, "", s)
print db_name+" is "+db
有沒有更好的方法來做到這一點?
'rdb,master,db ='rdb_master_test_mongodb'.split('_')'給出'ValueError:太多值來解包'。 –
我認爲你應該分裂兩次。 – iMom0
@LevLevitsky - 你是對的,那麼我們必須分兩次。答案已更新。 – eumiro