我在二进制读取 .csv 到字典时遇到问题

I'm having problems binary reading a .csv to a dictionary

我正在从 FTP 服务器读取 .CSV 文件,并想将其内容转换为字典。

读取 csv.DictReader 时出现一些问题。

from ftplib import FTP
from io import BytesIO
import csv
ftp = FTP('192.168.202.90')    
loggedOn = ftp.login(user='admin', passwd='admin')
loggedOn = loggedOn.endswith('OK') # '230 Login OK'  
if loggedOn:
    ftp.cwd('/CSV')
    Files = ftp.nlst()
    NewestFile = Files[-1] # last file in the list
    r = BytesIO()
    ftp.retrbinary('RETR '+NewestFile, r.write)
    data = r.getvalue().decode("utf-8")
    print(r.getvalue())
    print(data)
    for row in csv.DictReader(data, delimiter=','):
        print(row)
    ftp.close()

OUTPUT OF 'print(r.getvalue())':

b'CheckBox_T100,TestedDatetime\nYes,2020-05-24'

OUTPUT OF 'print(data):

CheckBox_T100,TestedDatetime
Yes,2020-05-24

OUTPUT OF for loop 'print()':

{'C': 'h'}
{'C': 'e'}
{'C': 'c'}
{'C': 'k'}
{'C': 'B'}
{'C': 'o'}
{'C': 'x'}
{'C': '_'}
{'C': 'T'}
{'C': '1'}
{'C': '0'}
{'C': '0'}
{'C': '', None: ['']}
{'C': 'T'}
{'C': 'e'}
{'C': 's'}
{'C': 't'}
{'C': 'e'}
{'C': 'd'}
{'C': 'D'}
{'C': 'a'}
{'C': 't'}
{'C': 'e'}
{'C': 't'}
{'C': 'i'}
{'C': 'm'}
{'C': 'e'}
{'C': 'Y'}
{'C': 'e'}
{'C': 's'}
{'C': '', None: ['']}
{'C': '2'}
{'C': '0'}
{'C': '2'}
{'C': '0'}
{'C': '-'}
{'C': '0'}
{'C': '5'}
{'C': '-'}
{'C': '2'}
{'C': '4'}

如何获得正确的目录

{'CheckBox_T100': 'Yes', 'TestedDatetime': '2020-05-24'}

我自己找到了解决方案。我还必须包括 StringIO

from ftplib import FTP
from io import BytesIO
from io import StringIO
import csv
ftp = FTP('192.168.202.90')    
loggedOn = ftp.login(user='admin', passwd='admin')
loggedOn = loggedOn.endswith('OK') # '230 Login OK'  
if loggedOn:
    ftp.cwd('/CSV')
    Files = ftp.nlst()
    NewestFile = Files[-1] # last file in the list
    r = BytesIO()
    ftp.retrbinary('RETR '+NewestFile, r.write)
    data = r.getvalue().decode("utf-8")
    for row in csv.DictReader(StringIO(data)):
        print(row)
    ftp.close()