Python | Способи перетворення рядка в об'єкт json
У цій статті ми побачимо різні способи перетворення рядка в 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))> |
Вихід:
Initial string dictionary: {'name': 'John', 'age': 30, 'city': 'New York'} Final dictionary: {'name': 'John', 'age': 30, 'city': 'New York'}