Работа с данными JSON
Теперь, когда мы знаем, как правильно импортировать модуль JSON, давайте рассмотрим, как использовать его для распространенных операций JSON.
Создание полного примера JSON
Создайте новый файл с именем json_operations.py со следующим содержимым:
## Complete example of working with JSON in Python
import json
## 1. Converting Python object to JSON string (serialization)
user = {
"name": "Charlie",
"age": 28,
"is_student": False,
"courses": ["Python", "Data Science", "Web Development"],
"address": {
"street": "123 Tech Lane",
"city": "Boston",
"zipcode": "02101"
}
}
## Convert Python dictionary to JSON string
json_string = json.dumps(user, indent=2)
print("JSON string created from Python object:")
print(json_string)
print("\n" + "-"*50 + "\n")
## 2. Parse JSON string to Python object (deserialization)
parsed_user = json.loads(json_string)
print("Python object created from JSON string:")
print("Name:", parsed_user["name"])
print("Age:", parsed_user["age"])
print("Courses:", parsed_user["courses"])
print("City:", parsed_user["address"]["city"])
print("\n" + "-"*50 + "\n")
## 3. Writing JSON to a file
with open("/home/labex/project/user_data.json", "w") as json_file:
json.dump(user, json_file, indent=2)
print("JSON data written to user_data.json")
## 4. Reading JSON from a file
with open("/home/labex/project/user_data.json", "r") as json_file:
loaded_user = json.load(json_file)
print("JSON data loaded from file. User name:", loaded_user["name"])
Этот скрипт демонстрирует четыре распространенные операции JSON:
- Преобразование объекта Python в строку JSON с помощью
json.dumps()
- Разбор строки JSON в объект Python с помощью
json.loads()
- Запись данных JSON в файл с помощью
json.dump()
- Чтение данных JSON из файла с помощью
json.load()
Запустите скрипт:
python3 /home/labex/project/json_operations.py
Вы должны увидеть вывод, похожий на следующий:
JSON string created from Python object:
{
"name": "Charlie",
"age": 28,
"is_student": false,
"courses": [
"Python",
"Data Science",
"Web Development"
],
"address": {
"street": "123 Tech Lane",
"city": "Boston",
"zipcode": "02101"
}
}
--------------------------------------------------
Python object created from JSON string:
Name: Charlie
Age: 28
Courses: ['Python', 'Data Science', 'Web Development']
City: Boston
--------------------------------------------------
JSON data written to user_data.json
JSON data loaded from file. User name: Charlie
Скрипт также создал файл с именем user_data.json. Давайте посмотрим на его содержимое:
cat /home/labex/project/user_data.json
Вы должны увидеть данные JSON, отформатированные с правильным отступом:
{
"name": "Charlie",
"age": 28,
"is_student": false,
"courses": ["Python", "Data Science", "Web Development"],
"address": {
"street": "123 Tech Lane",
"city": "Boston",
"zipcode": "02101"
}
}
Теперь вы успешно научились работать с данными JSON в Python, включая то, как избежать ошибки NameError: name 'json' is not defined, правильно импортировав модуль.