使用Python将字符串转换为词典列表

时间:2019-05-13 10:10:38

标签: python

我的代码如下:

try:
    relations = open(file_name, "wb")      
    ftp.retrbinary('RETR {0}'.format(file_name), test)         
    relations.close()  # Closes the local file        
    ftp.quit()  # Closes the ftp connection
    print("FTP Connection quited.")        
except Exception as e:
    print("Error: File {0} could not be downloaded. {1}".format(file_name, str(e)))

测试功能如下:

def test(data):
    data_n = json.dumps(data.decode('utf-8'))

    pdb.set_trace()
    pass

我想使用python从ftp服务器下载文件并读取它,而无需在本地编写。

在这种情况下,我在test的{​​{1}}函数中得到了

data_n

如何将其转换为字典列表,如下所示:

'"CODE;MATCHCODE;\\r\\nK902154;VANHOVEGARAGES;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\\r\\nK902191;CARAVENUESTAR;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\\r\\nK902192;CARAVENUESTAR;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"'

1 个答案:

答案 0 :(得分:1)

使用str.split和一个简单的迭代。

例如:

s = '"CODE;MATCHCODE;\\r\\nK902154;VANHOVEGARAGES;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\\r\\nK902191;CARAVENUESTAR;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\\r\\nK902192;CARAVENUESTAR;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"'
result = []
for i, v in enumerate(s.split(r"\r\n")):
    if i == 0:
        keys = v.strip().strip(';"').split(";")    #Get Keys
    else:
        result.append(dict(zip(keys, v.strip().strip(';"').split(";"))))     #Form dict. 

print(result)

输出:

[{'CODE': 'K902154', 'MATCHCODE': 'VANHOVEGARAGES'},
 {'CODE': 'K902191', 'MATCHCODE': 'CARAVENUESTAR'},
 {'CODE': 'K902192', 'MATCHCODE': 'CARAVENUESTAR'}]