Ошибка декодирования в файле json. Дополнительные данные. Кто-нибудь знает, что может быть причиной этого?Python

Программы на Python
Anonymous
Ошибка декодирования в файле json. Дополнительные данные. Кто-нибудь знает, что может быть причиной этого?

Сообщение Anonymous »

Я решил сделать бота для Telegram с цепью Маркова, и для обучения цепи Маркова я скачал историю чатов своей группы друзей и сделал скрипт для фильтрации и разделения только сообщений от группы, но в JSOM появились какие-то ошибки, а поскольку файл очень большой (7193776 строк), я написал скрипт, который автоматизирует исправление json, так как исправить его вручную невозможно, я обработал исключения, и он возвращает эту кодировку ошибка:

Код: Выделить всё

It was not possible correct the JSON: Extra data: line 1 column 3 (char 2)
JSON decoding error on line: Extra data: line 1 column 7 (char 6)
Я думаю, это потому, что JSON имеет более одного объекта в строке. Я хотел узнать ваше мнение, как вы думаете, что это может быть?
Вот фрагмент кода скрипта (не буду приводить его полностью, чтобы не делать этот пост слишком длинным):

Код: Выделить всё

            item = json.loads(line)
return item
except json.JSONDecodeError as e:
print(f"Unable to fix JSON: {e}")
return None

# Open input file
with open(input_file, 'r', encoding='utf-8') as in_file:
for line in in_file:
# Tenta corrigir a linha
fixed_line = fix_json_line(line.strip())
if fixed_line:
fixed_messages.append(fixed_line)
else:
unfixed_lines.append(line)

# Saves corrected messages to a new JSON file
with open(output_file, 'w', encoding='utf-8') as out_file:
json.dump(fixed_messages, out_file, ensure_ascii=False, indent=2)

# Saves lines that could not be corrected in a separate file
if unfixed_lines:
with open('unfixed_lines.txt', 'w', encoding='utf-8') as unfixed_file:
unfixed_file.writelines(unfixed_lines)
print(f"Lines that could not be corrected were saved in 'unfixed_lines.txt'")
else:
print("All lines were successfully corrected.")

print(f"Lines corrected and saved in {output_file}")

Я уже пробовал искать, но так как описание ошибки очень расплывчато (дальше указать ошибку не удалось) Google выдал несколько возможных ошибок, но я не знаю, что это такое может быть, я спросил чат GPT, но иногда кажется, что он не работает должным образом. .. И я спросила у своего преподавателя технического курса, но он не смог мне ответить! Это пример форматирования json:

Код: Выделить всё

{
"id": 610775,
"type": "message",
"date": "2024-06-27T13:55:13",
"date_unixtime": "1719507313",
"from": "Swelve",
"from_id": "user5957514107",
"reply_to_message_id": 610761,
"text": "antes de pisar numa universidade ele deveria revisar esse português dele",
"text_entities": [
{
"type": "plain",
"text": "antes de pisar numa universidade ele deveria revisar esse português dele"
}
]
},
{
"id": 610776,
"type": "message",
"date": "2024-06-27T13:56:31",
"date_unixtime": "1719507391",
"from": "Old dirty bastard λ",
"from_id": "user1758042831",
"text": "No mínimo",
"text_entities": [
{
"type": "plain",
"text": "No mínimo"
}
]
}
]
}
С моей точки зрения, в json нет ничего плохого, но, поскольку я только начал изучать Python и машинное обучение, я могу сильно ошибаться (раньше я был хиппи, любящим функциональное программирование, но здесь, в моей стране, больше вакансий, связанных с Python, поэтому я начал изучать Python, чтобы иметь шанс найти работу) Я спрашиваю об этом, потому что для того, чтобы исправить ошибку, мне сначала нужно знать, в чем заключается ошибка, а я этого не знаю. даже знаю это...

Подробнее здесь: https://stackoverflow.com/questions/786 ... be-causing

Вернуться в «Python»