2012-01-07 80 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是你不同的输入

相关问题