Ваши данные, вероятно, повреждены, по крайней мере, в одном месте (может быть, больше).
Один из способов найти такое место - запустить код, а не весь файл,но на куски этого.
Например, запустите ваш код на:
- первой половине вашего файла,
- второй половине.
Если какая-либо часть работает нормально, то она не содержит ошибок.
Следующим шагом является повторение вышеописанной процедуры для каждого «сбойного» чанка.
ДругаяМетод : внимательно посмотрите на свой StackTrace, возможно, где-то есть номер строки в исходном файле *1022* (не путайте его с номером строки Python code ).
Пока вы собираете весь текст в виде одной строки , поэтому даже если StackTrace содержит такое число, скорее всего, это просто 1 .
Чтобы облегчить расследование, измените код таким образом, чтобы каждая строка исходного текста была в отдельной строке в объединенном тексте. Что-то вроде:
data_json_str = "[" + ',\n'.join(data) + "]"
Затем снова выполните свой код и прочитайте показанное число (где произошла ошибка), теперь равное номеру строки исходного текста.
Затем посмотрите на эту строку,исправьте его, и ваш код должен работать без ошибок.
Редактировать после вашего комментария исходные данные
В ваших данных я заметил, что:
- содержит два объекта JSON (строки),
- , но без без запятой между ними.
Я сделал следующие дополнения и изменения:
- добавлено [ и ] в начале / конце,
- добавлено запятая после первого {...} .
, чтобы входная строка была:
data_json_str = '''[
{"id": "99014576299056245", "created_at": "2017-11-16T14:28:53.919Z",
"sensitive": false, "spoiler_text": "", "language": "en",
"uri": "mastodon.gamedev.place/users/jaggy/statuses/99014576299056245",
"instance": "mastodon.gamedev.place",
"content": "<p>Coding a cheeky skill before bed. Not as much as I'd like but had drinks with co-workers after work so shrug ^_^</p>",
"account_id": "434", "tag_list": [], "media_attachments": [], "emojis": [], "mentions": []},
{"id": "99014544879467317", "created_at": "2017-11-16T14:20:54.462Z", "sensitive": false}
]'''
Затем выполнили инструкцию для чтения этой строки:
data_df = pd.read_json(data_json_str)
и получили DataFrame с2 строки (без ошибок). Первоначально я подозревал '
как возможный источник ошибки, но read_json справился и с этим делом.
Но когда я удалил запятую после первой {... } , я получил ошибку:
ValueError: Unexpected character found when decoding array value (2)
(другая ошибка, кроме вашей).
Я использую Python 3.7.0 и Pandas 0,25. Если у вас есть более старая версия Python или Pandas , может быть, вам стоит обновить их?
Настоящая проблема, вероятно, связана с некоторым "слабым местом" в JSONсинтаксический анализатор (я не уверен, является ли он частью Python или Pandas ).
Перед обновлением выполните еще один тест: отбросьте упомянутый '
из входной строки и попробуйте read_json снова.
Если вы получите на этот раз правильный результат, это подтвердит мое подозрение, что анализатор JSON в вашей установке имеет недостатки и будет важной поддержкоймоего совета по обновлению вашего программного обеспечения.