0

Я никогда раньше не использовал JSON.Вопрос о сериализации Python JSON

У меня есть файл, который содержит 151 различных предопределенных списков. Я хочу сделать это, чтобы иметь возможность читать файл и использовать класс, создать 151 объект из информации, хранящейся в файле.

Проблема, с которой я сталкиваюсь, заключается в том, что я могу получить файл для чтения, однако он не создает объекты. Из того, что я могу понять, это потому, что файл содержит как целые, так и строковые компоненты в 151 списке, но файл чтения состоит только из строк.

Обнаружив JSON - как я понимаю, он может сериализовать и десериализовать информацию как целое число, так и строку, что позволяет классу создавать 151 объект.

Однако, у меня возникла проблема с пониманием того, как работает JSON, и, не знакомая с этим, я также стараюсь понять его сообщения об ошибках.

получил Ошибка таким образом:

Traceback (most recent call last): 
File "<pyshell#38>", line 1, in <module> 
json.dump(Compile_Index, r"C:\Users\Aphrael\Desktop\Index.py") 
File "C:\Python34\lib\json\__init__.py", line 178, in dump 
for chunk in iterable: 
File "C:\Python34\lib\json\encoder.py", line 429, in _iterencode 
o = _default(o) 
File "C:\Python34\lib\json\encoder.py", line 173, in default 
raise TypeError(repr(o) + " is not JSON serializable") 
TypeError: <_io.TextIOWrapper name='C:\\Users\\Aphrael\\Desktop\\Index.py' mode='r+' encoding='cp1252'> is not JSON serializable 

ли кто-то будет достаточно любезен, либо сказать мне, что я буду о том, что я пытаюсь сделать неправильно, и поставил меня на правильный путь - или иным образом объяснить что JSON пытается сказать мне, является причиной того, что мои данные не сериализуемы?

+0

Не могли бы вы просто упомянуть здесь, что вы пробовали? – sumit

ответ

0

Я собираюсь принять дикое предположение, так как вы не разместили свой код. Вы сделали это:

import json 

with open('file.json') as f: 
    json.loads(f) 

Вместо:

import json 

with open('file.json') as f: 
    json.loads(f.read()) 
+0

Вы упомянули "('file.json')". Я не уверен, что это означает, что мой файл должен быть в формате .json, и если да, то как его вставить. На данный файл является .py документ, поэтому у меня есть: 'импорт JSON с открытыми (г "C: \ Users \ Aphrael \ Desktop \ Index.py", "R +"), как Compile_Index: Index_Data = Compile_Index.read() ' – GoddessAphrael

+0

извините за плохой формат комментариев. Все еще изучая нюансы этого сайта – GoddessAphrael

+0

Расширение файла не имеет значения. Просто назовите 'json.loads (Index_Data)'. –

0

Попробуйте использовать код ниже:

json.dumps(objectName.__dict__) 

Изменить Objectname для вашего объекта.

0

Спасибо за совет.

Мне удалось заставить его работать, однако, я был уговорил моего наставника сделать то же самое по-другому, поместив информацию в файл .dat и используя функцию exec(), позволяя коду легко переносятся на другие языки, а также безопасно безопасны в отношении выполнения кода, который может быть изменен.

 Смежные вопросы

  • Нет связанных вопросов^_^