• Ошибка json.decoder.JSONDecodeError: Extra data: line 6 column 3 (char 308), как её решить?

    @o5a
    Основная проблема здесь:
    with open('merged.json', 'a+', encoding='utf-8') as hml:
        d = json.load(hml)

    Пытаетесь открыть файл для добавления данных и одновременно считать из него.
    Когда файл открывается "a+", указатель помещается в самый конец файла. Поэтому при считывании из него последующим json.load(hml) данных просто не будет (даже если файл что-то и содержит, т.к. указатель в самом конце). Поэтому и возвращается эта ошибка, что json некорректный.
    Можно это поправить, если после открытия файла перемотать указатель в его начало, добавив перед json.load строку
    hml.seek(0)
    Но вообще в целом по структуре всего кода, лучше не пытаться с json файлами работать путем их дописывания.
    Лучше
    1. Сначала полностью считать исходный файл в свой список/словарь
    2. Сделать изменения/дополнения именно в этом списке
    3. В конце записать уже полные данные с нуля в файл .json
    Тогда и ошибок будет меньше, и не понадобится изобретать костыли в виде replace("]", "")
    Ответ написан
    1 комментарий
  • Как извлечь выделенное определенным цветом слово?

    @chemdev
    в json нет опции цветной текст, поэтому ты ничего и не можешь найти (смотри спецификацию json), но ты можешь хранить строку с названием цвета в отдельном поле, чтобы использовать потом. Однако и это будет лишней информацией потому что понятно что цвет - функция от строки.
    Ответ написан
    3 комментария