У меня есть приложение, в котором мне нужно конвертировать файлы со словарем в формате Python на полках в файлы JSON.
import ujson, shelve
with open("shelveFile", "r") as sfile:
shelve_dict=shelve.open(sfile)
py_dict= dict(shelve_dict)
with open("jsonfile.json","w") as jsonfile:
ujson.dump(py_dict, jsonfile)
with open("jsonfile.json",'r') as readJSONfile:
ujson.loads(readJSONfile.read())
Примечание. Если я использую ujson.load(jsonfile2)
, получаю ошибку сериализации.
У меня есть проблема: файл shelve использует типы данных кортежа Python для некоторых ключей словаря.Я могу использовать ujson.dump
для сохранения в формате JSON, но когда я пытаюсь использовать ujson.load(jsonfile)
, ключи загружаются в виде строк, а не кортежей.Если не использовать словарное понимание для преобразования ключей (неуверенный в этом точном синтаксисе), существует ли библиотека, которая преобразует файл полок в файл JSON, который я мог бы загрузить обратно в объект словаря Python?
Когдазагружено ujson.loads(fileobj.read())
методом:
{"('tuplekey1','tuplekey2')": value,}
Должно быть:
{('tuplekey1','tuplekey2'): value,}
(пожалуйста, не голосуйте, если вопрос не ясен, я сделаю все возможное, чтобы разъяснить, если это необходимо... я не часто задаю вопросы здесь.)