Я получил следующий фрагмент кода.Массив байтов является выдержкой из более длинного.Тем не менее проблема становится понятной.Друг сказал мне, что это bytea
, но я изо всех сил пытаюсь расшифровать его до читаемой человеком строки.
b = b'\xc1\x01\x00'
import cchardet
enc = cchardet.detect(b)['encoding'] # 'WINDOWS-1252'
b.decode(enc) # 'Á\x01\x00'
b.decode("utf-8", errors='ignore') # '\x01\x00'
Есть идеи?
Примечание: данные изначально созданы NetVault и сохранены в PostgresDB в базе данных 'netvault_scheduling' с таблицей 'backupslecrionset' встолбец 'backupseltree'.База данных говорит, что кодировка UTF-8.Но мои данные (считанные в кадре данных pandas) выглядят так, как указано выше.
Заявление выглядит так:
db = postgresql.open('pq://{}:{}@{}:{}/{}'.format({user} {password}, 'localhost', 51486,
'netvault_scheduling'))
prep_stmt = db.prepare("SELECT ph.jobid, jd.title,"
"to_char(to_timestamp(ph.date),'YYYY-MM-DD') AS datum,"
"ph.duration, ph.bytestransferred, jd.clientname, bss.backupseltree"
"FROM phasehistory ph "
"INNER JOIN jobdescription jd "
"ON jd.jobid=ph.jobid "
"INNER JOIN backupselectionset bss "
"on jd.selectionsset = bss.name "
"WHERE jd.jobid = $1 "
"ORDER BY datum DESC ")
backup_nv_tree = prep_stmt(7228)
Df = pd.DataFrame(backup_nv_tree)
Df = ['JobID', 'Title',
'Date',
'Duration', 'Transfered in GB',
'Clientname', 'Backuptree']