2012-01-07 112 views
-2

例如,輸入1,輸入2變量和key_loc是字典鍵列表,如何將由逗號分隔的字符串轉換爲Python中的字典?

輸入:

input1='sam,geti,1234' 
input2='jhon,somwhre,676966' 
key_loc =['name','addr','phone'] 

我期待在下面的格式輸出。

輸出:

output={'recod1:{'name':'sam','addr':'geti','phone':'12343'}, 
      'record2':{'name':'jhon','addr':'somewhre','phone':'676966'}} 

我們怎樣才能做到這一點在Python?

+0

遍歷字典和使用的String.Format方法列表 - HTTP://文檔.python.org/library/stdtypes.html#str.format – King 2012-01-07 14:40:29

+2

目前還不清楚你在問什麼。詳細闡述並解釋你想要做什麼。同時顯示你有什麼代碼和你有問題的地方。 – sth 2012-01-07 14:41:51

+0

請稍微詳細 – Vilva 2012-01-07 14:41:53

回答

4

我假設你有一個文件或文件類對象input包含你發佈的輸入行。然後你可以使用此代碼解析它變成像這樣的詞典:

output = {} 
for line in input: 
    key, values = line.strip().split('=', 1) 
    data = values.split(',') 
    output['record' + key[5:]] = dict(name=data[0], addr=data[1], phone=data[2]) 

但是,如果你實際上並不需要從input1數等,可以考慮使用list作爲頂級對象:

output = [] 
for line in input: 
    values = line.strip().split('=', 1)[1] 
    data = values.split(',') 
    output.append(dict(name=data[0], addr=data[1], phone=data[2])) 
2

您可以使用json庫。

如果你想自己的代碼,你應該這樣做:

output = {} 
for indx, input in enumerate(inputs): 
    name, addr, phone = input.split(",") 
    output['record%i' %indx] = {'name':name, 'addr':addr, 'phone':phone} 

其中inputs是你不同的輸入

相關問題