Не удается декодировать массив байтов WINDOWS-1252 - PullRequest
0 голосов
/ 29 апреля 2019

Я получил следующий фрагмент кода.Массив байтов является выдержкой из более длинного.Тем не менее проблема становится понятной.Друг сказал мне, что это 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']
...