shurshur, сори, но я упорно не вижу никакой мешанины, вполне обычный json ¯\_(ツ)_/¯
Ладно, если вы видите, то можете разбираться. Я склоняюсь к тому, что это автор мудрит, и целенаправлено не показывает repr(r). Может у него там массив строк, где строка это Джейсон, который он не парсит...
domanskiy, т.е. ты так и не понял, что тебе нужно свой вопрос привести в порядок и написать входные данные и что хочется получить? Пример так называемых "utf8 данных" и "windows-1251 данных"
Разобраться бы тебе в кодировках... а если не разбираешься, зачем вопросы такие задавать? Задавай как есть и спрашивай, а не дезинформируй, какой -тут cp1251?
олсо, json.loads() автоматически юникод должен преобразовывать в utf-8, если не указано иначе.
Нельзя дать конкретного ответа без знания что за шаред обжект и какие там действия над ним осуществляются.
В общем случае локи тебе помогут. Работают они просто, пока активен один лок (with statement в твоем случаее), второй тред выполнить такую же конструкцию не сможет и будет ждать пока второй тред освободит лок(в твоем случае выйдет из контекстного менеджера) и соответственно полезную работу выполнять не будет.
MuX_FuN, Ничего личного. Ответы на твои вопросы есть в документации, причем эти вопросы самая основа - это первое что нужно изучить. Как нужно задавать вопросы - написано в правилах сервиса. Сейчас это выглядит так, как-будто в голову что-то стрельнуло, скачался питон, что-то нашлось в интернете, скопипастилось, не получилось и пришлось сюда. Таких вопросов тут куча и они задолбали. На то что это вдруг "стрельнуло", также указывает и банальная ошибка в самом питоне (box = tk.Entry(root).place(x=0, y=0)).
Если ты серьезно хочешь что-то делать в плане tkinter, то к прохождению обязателен этот туториал: https://tkdocs.com/tutorial/index.html
И книжка по питону.