TypeError при чтении файла CBOR

Я работаю над проектом, используя файл CBOR для хранения данных. Я уже установил cbor с pip install cbor. Но я не могу это прочитать.

Это мой код:

import cbor
cbor.loads(r"C:\Users\User\Desktop\project\score.cbor")

Затем он возвращает эту ошибку:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Users\User\Anaconda3\envs\pyenv\lib\site-packages\cbor\cbor.py", line 263, in loads
    fp = StringIO(data)
TypeError: a bytes-like object is required, not 'str'

Как решить эту проблему? И есть ли способ преобразовать CBOR в файл JSON, потому что мне проще работать с файлом JSON в Python.


person huy    schedule 02.06.2020    source источник


Ответы (1)


Я до сих пор не знаю, как решить эту проблему с помощью cbor, вместо этого я использую cbor2, и это работает.

import cbor2
path = "home/data/score.cbor"

with open(path, 'rb') as fp:
    obj = cbor2.load(fp)
    print(obj)

Выход

{'root': {'probe': 20, 'candidate': 31}, 'tree': [], 'support': []}
person huy    schedule 02.06.2020
comment
Я работал над инструментом командной строки для cbor2, который выводит вывод в json: github.com /agronholm/cbor2/pull/72 Существует также проект remarshal: github.com/dbohdan/remarshal, целью которого является преобразование множества различных форматов сериализации. - person Sekenre; 31.07.2020