我的代码如下:
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"'
答案 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'}]