ValueError: Ни один объект JSON не может быть декодирован для допустимого файла JSON - PullRequest
0 голосов
/ 04 мая 2018

У меня есть действительный файл JSON размером 109 Мб со следующим форматом представления.

[{"sensorType":"Radarcape","sensorLatitude":{"double":51.758894},"sensorLongitude":{"double":-1.256654},"sensorAltitude":{"double":200.0},"timeAtServer":1.429617600000027E9,"timeAtSensor":null,"timestamp":{"double":9.68628281E8},"rawMessage":"8d4008f999059a90c09719d7b430","sensorSerialNumber":13020235,"RSSIPacket":{"double":52.0},"RSSIPreamble":null,"SNR":null,"confidence":null}
,{"sensorType":"Radarcape","sensorLatitude":{"double":51.758894},"sensorLongitude":{"double":-1.256654},"sensorAltitude":{"double":200.0},"timeAtServer":1.429617600001544E9,"timeAtSensor":null,"timestamp":{"double":9.74843812E8},"rawMessage":"8f406a9a5913d2d51fbe8ab14fdf","sensorSerialNumber":13020235,"RSSIPacket":{"double":72.0},"RSSIPreamble":null,"SNR":null,"confidence":null}]

Простой код для чтения файла JSON:

import json

with open ("jsonfile.txt",'r') as f:

        j=json.load(f)

Я пытаюсь разобрать его, чтобы преобразовать в формат SQLite. Тем не менее, каждый раз, когда я получаю следующее сообщение об ошибке.

Traceback (most recent call last):
  File "C:/Users/PycharmProjects/jsontosqlite/test.py", line 5, in <module>
    a=json.loads("newfile.json")
  File "C:\Python27\lib\json\__init__.py", line 339, in loads
    return _default_decoder.decode(s)
  File "C:\Python27\lib\json\decoder.py", line 364, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "C:\Python27\lib\json\decoder.py", line 382, in raw_decode
    raise ValueError("No JSON object could be decoded")
ValueError: No JSON object could be decoded

1 Ответ

0 голосов
/ 04 мая 2018

Следующее работает для меня, если я помещаю (точно) данные JSON, показанные в вашем вопросе, в файл jsonfile.txt и запускаю его:

import json

with open ("jsonfile.txt", 'r') as f:
    j = json.loads(f.read())

print(json.dumps(j, indent=4))

Выход:

[
    {
        "sensorType": "Radarcape",
        "sensorLatitude": {
            "double": 51.758894
        },
        "sensorLongitude": {
            "double": -1.256654
        },
        "sensorAltitude": {
            "double": 200.0
        },
        "timeAtServer": 1429617600.000027,
        "timeAtSensor": null,
        "timestamp": {
            "double": 968628281.0
        },
        "rawMessage": "8d4008f999059a90c09719d7b430",
        "sensorSerialNumber": 13020235,
        "RSSIPacket": {
            "double": 52.0
        },
        "RSSIPreamble": null,
        "SNR": null,
        "confidence": null
    },
    {
        "sensorType": "Radarcape",
        "sensorLatitude": {
            "double": 51.758894
        },
        "sensorLongitude": {
            "double": -1.256654
        },
        "sensorAltitude": {
            "double": 200.0
        },
        "timeAtServer": 1429617600.001544,
        "timeAtSensor": null,
        "timestamp": {
            "double": 974843812.0
        },
        "rawMessage": "8f406a9a5913d2d51fbe8ab14fdf",
        "sensorSerialNumber": 13020235,
        "RSSIPacket": {
            "double": 72.0
        },
        "RSSIPreamble": null,
        "SNR": null,
        "confidence": null
    }
]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...