Преобразование строки в JSON - PullRequest
0 голосов
/ 06 ноября 2019

Я использую пакет Python Gitlab для импорта файлов json:

l = project.files.get(file_path='path', ref='branch')
str = l.decode().decode('utf-8')
string_to_json = json.loads(str)

Однако это ошибка:

Traceback (most recent call last):
  File "(file path)", line 287, in <module>
    spec_json = json.loads(spec_string)
  File "(file path)", line 348, in loads
    return _default_decoder.decode(s)
  File "(file path)", line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "(file path)", line 355, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

Строка str всегда будет действительнойJSON. Если я вручную скопирую вывод str и оберну json.loads() вокруг него, он успешно выдаст мне объект JSON. Почему, когда я запускаю код, он не будет преобразован в JSON?

Ниже приведен вывод str. Опять же, если я оберну json.loads() вокруг строки ниже, она будет работать нормально. Но что-то не так в строке decode():

{
    "test1": {
        "b": "1",
        "c": "2",
        "d": "3",
        "e": "4.sql",
        "f": 5,
        "g": "6",
        "h": "7",
        "i": "8"
    },
    "test2": [
        {
            "a": "1",
            "b": "2",
            "c": "3",
            "d": 4
        },
        {
            "a": 1,
            "b": "2",
            "c": "3",
            "d": "4",
            "e": 5
        }
    ]
}
...