Модуль 9.3 (Работаем с JSON в Python. Парсинг JSON, сохраняем JSON в файл). JSON
– это текстовый формат обмена данными. На текущий день это самый популярный формат обмена данными.
Процесс преобразования значения словаря в строку формата
JSON
называется
сериализация
Процесс преобразования строки формата
JSON
в словарь называется
десериализация
Допишите название модуля, который позволяет работать с форматом
JSON
import json
В JSON строке встретилось значение null
{ "name": "Jonny", "surname": null }В какой питовский объект будет сконвертировано значение null при десерилизации?
None
В JSON строке встретилось значение
true
{ "name": "Jonny", "have_driver_license": true }В какой питовский объект будет сконвертировано значение
true
при десерилизации?
True
В JSON строке встретилось значение
false
{ "name": "Jonny", "have_driver_license": false }В какой питовский объект будет сконвертировано значение
false
при десерилизации?
False
Ваша задача выполнить сериализацию словаря из данного задания и сохранить полученную json-строку в переменную
json_data
В качестве ответа распечатайте значение переменной
json_data
import json # импортируем модуль JSON alphabet = {} # создаем пустой словарь для добавления английского алфавита for i in range(26): # циклом мы в словарь добавляем элементы словаря: Ключ - английская буква, значение - её порядковый номер alphabet[chr(97+i)] = i+1 # английскую букву мы получаем из таблицы аски по её id - chr(id) - возвращает букву по id в таблице аски json_data = json.dumps(alphabet) # преобразуем из словаря в объект json print(json_data) # выводим полученный объект
Если у вас не отображается решение последних задач, значит у вас включен блокировщик рекламы который вырезает эти ответы
import json
json_string = »’
{
«customers»: [
{
«userid»: 123456,
«username»: «Allie Hsu»,
«phone»: [
«000-001-0002»,
«000-002-0002»
],
«is_vip»: true
},
{
«userid»: 223678,
«username»: «Donald Duck»,
«phone»: null,
«is_vip»: false
}
]
}
»’
data = json.loads(json_string)
print(data[‘customers’][0][‘username’])
В этой задаче вам необходимо раскодировать текст, находящийся в данном текстовом файле
import json
# Открыть файл Alphabet.json и загрузить его содержимое в формате словаря Python
with open(‘Alphabet.json’) as f:
alphabet = json.load(f)
# Открыть файл Abracadabra__1_.txt и прочитать его содержимое
with open(‘Abracadabra__1_.txt’) as f:
text = f.read()
# Декодировать текст, заменяя каждую букву, если она есть в словаре
decoded_text = »
for char in text:
if char in alphabet:
decoded_text += alphabet[char]
else:
decoded_text += char
# Сохранить измененный текст в новом файле
with open(‘decoded_text.txt’, ‘w’) as f:
f.write(decoded_text)
# Вывести декодированный текст на экран
print(decoded_text)
The Zen of Python, by Tim Peters
Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren’t special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one— and preferably only one —obvious way to do it.
Although that way may not be obvious at first unless you’re Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it’s a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea — let’s do more of those!
Ваша задача скачать файлик и самостоятельно найти идентификатор группы, в которой находится самое большое количество женщин, рожденных после 1977 года. В качестве ответа необходимо указать через пробел идентификатор найденной группы и сколько в ней было женщин, рожденных после 1977 года.
9 10
import json
with open(‘group_people.json’, ‘r’) as f:
data = json.load(f)
max_group_id = None
max_female_count = 0
for group in data:
female_count = 0
for person in group[‘people’]:
if person[‘gender’] == ‘Female’ and person[‘year’] > 1977:
female_count += 1
if female_count > max_female_count:
max_group_id = group[‘id_group’]
max_female_count = female_count
print(max_group_id, max_female_count)
Анализ продаж
import json
with open(‘manager_sales.json’, ‘r’) as f:
data = json.load(f)
# Создаем словарь, чтобы хранить суммы продаж для каждого менеджера
sales_by_manager = {}
# Проходимся по каждому элементу в списке данных
for item in data:
manager = item[‘manager’]
cars = item[‘cars’]
# Считаем сумму продаж для данного менеджера
manager_sales = sum(car[‘price’] for car in cars)
# Обновляем словарь продаж для данного менеджера
sales_by_manager[f»{manager[‘first_name’]} {manager[‘last_name’]}»] = manager_sales
# Находим менеджера с максимальной суммой продаж
best_manager = max(sales_by_manager, key=sales_by_manager.get)
# Выводим результат
print(best_manager, sales_by_manager[best_manager])
Sharity Devonside 103690