У цій статті ми побачимо різні способи перетворення рядка в JSON у Python. Цей процес називається серіалізацією. Модуль JSON надає функції для кодування (серіалізації) об’єктів Python JSON рядки та декодування (десеріалізація) рядків JSON у Об'єкти Python .
- Кодування (серіалізація) JSON : Якщо у вас є об’єкт Python і ви хочете перетворити його на рядок JSON, ви можете використовувати json.dumps() функція. Він приймає об’єкт Python як вхідні дані та повертає рядок JSON.
- Декодування (десеріалізація) JSON : якщо у вас є рядок JSON і ви хочете перетворити його на об’єкт Python, ви можете використовувати json.loads() функція. Він приймає рядок JSON як вхідні дані та повертає об’єкт Python.
Перетворення рядка на об’єкт JSON у Python
Нижче наведено методи перетворення рядків Python на об’єкти JSON:
- Використання json.loads() метод
- Використання методу eval().
- Використання методу ast.literal_eval().
Перетворення рядка на JSON за допомогою методу json.loads() у Python
У цьому прикладі ми перетворимо словник на об’єкт JSON за допомогою json.dump() функція. Потім ми перетворимо рядкове представлення об’єкта JSON у словник за допомогою json.loads() метод.
Python3
import> json> # initialising json object> ini_string>=> {>'nikhil'>:>1>,>'akash'> :>5>,> >'manjeet'> :>10>,>'akshat'> :>15>}> # printing initial json> ini_string>=> json.dumps(ini_string)> print> (>'initial 1st dictionary'>, ini_string)> print> (>'type of ini_object'>,>type>(ini_string))> # converting string to json> final_dictionary>=> json.loads(ini_string)> # printing final result> print> (>'final dictionary'>,>str>(final_dictionary))> print> (>'type of final_dictionary'>,>type>(final_dictionary))> |
>
>
Вихід:
initial 1st dictionary {'manjeet': 10, 'nikhil': 1, 'akshat': 15, 'akash': 5} type of ini_object final dictionary {'nikhil': 1, 'manjeet': 10, 'akshat': 15, 'akash': 5} type of final_dictionary> Перетворення рядка на JSON за допомогою методу eval() у Python
Функція eval() у Python оцінює вхідний вираз як вираз Python і виконує вираз (код) Python у програмі.
приклад
У цьому прикладі ми конвертуємо Python рядок подання до словника за допомогою метод eval(). .
Python3
# initialising json object string> ini_string>=> '''{'nikhil': 1, 'akash' : 5,> >'manjeet' : 10, 'akshat' : 15}'''> # printing initial json> print> (>'initial 1st dictionary'>, ini_string)> print> (>'type of ini_object'>,>type>(ini_string))> # converting string to json> final_dictionary>=> eval>(ini_string)> # printing final result> print> (>'final dictionary'>,>str>(final_dictionary))> print> (>'type of final_dictionary'>,>type>(final_dictionary))> |
>
>
Вихід:
initial 1st dictionary {'nikhil': 1, 'akash' : 5, 'manjeet' : 10, 'akshat' : 15} type of ini_object final dictionary {'nikhil': 1, 'manjeet': 10, 'akash': 5, 'akshat': 15} type of final_dictionary> Перетворіть рядок на JSON за допомогою методу ast.literal_eval().
Метод ast.literal_eval() є частиною модуля ast (абстрактного синтаксичного дерева) у Python. Ця функція оцінює вузол виразу, рядок, що складається з літералу, і перетворює його на об’єкт словника Python.
приклад
Тут ми використаємо метод ast.literal_eval() минулого модуля, щоб перетворити рядкове представлення словника на Python словник . Функція ast.literal_eval аналізує рядок і створює об’єкт словника Python із такими ж властивостями та значеннями. Отриманий об’єкт словника має тип dict. Потім ми можемо отримати доступ до властивостей об’єкта словника за допомогою стандартної нотації доступу до словника (наприклад, dict_obj[name]).
Python3
import> ast> # initialize the string to be converted> string>=> '{'name': 'John', 'age': 30, 'city': 'New York'}'> # use the ast.literal_eval function to parse the string and create a dictionary object> dict_obj>=> ast.literal_eval(string)> # printing final result> print> (>'Initial string dictionary: '>,string)> print> (>'Final dictionary: '>,dict_obj)> print>(>type>(dict_obj))> |
>
спробуйте catch block java
>
Вихід:
Initial string dictionary: {'name': 'John', 'age': 30, 'city': 'New York'} Final dictionary: {'name': 'John', 'age': 30, 'city': 'New York'}>