如何在python中将逗号分隔的字符串转换为字典?

时间:2012-01-07 14:36:34

标签: python dictionary

例如, input1,input2 变量和key_loc是字典的键列表,

输入:

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中做到这一点?

2 个答案:

答案 0 :(得分: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]))

答案 1 :(得分: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是您不同输入的列表