Задания с json python

Задача на Json

Напишите программу, которая распределит полученную информацию по двум категориям: то, что похоже на другие аналогичные планеты (same), и то, что отличает Солярис от других планет (different).

Формат ввода
Вводятся строки, в каждой из которых записано название параметра и его значение через две звездочки, окруженные пробелами.

Формат вывода
В файл ocean.json запишите словарь словарей: ключи same и different, а значение по каждому ключу – словарь подходящих параметров.

Параметры, имеющие четные двузначные положительные значения, относятся к категории same, остальные к different.

1 2 3 4 5 6 7 8 9 10 11 12
atmospheric composition ** 15 density ** 5700 illumination ** 35 axial tilt ** 48 terrain ** 86 acceleration of gravity ** 12 mass ** 62345 radius ** 6378 deviation from sphericity ** 15 flatness ** 34 ocean depth ** 1887 ocean composition ** 65
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
{ "same": { "axial tilt": "48", "terrain": "86", "acceleration of gravity": "12", "flatness": "34" }, "different": { "atmospheric composition": "15", "density": "5700", "illumination": "35", "mass": "62345", "radius": "6378", "deviation from sphericity": "15", "ocean depth": "1887", "ocean composition": "65" } }
eccentric anomaly ** 48 secondary movement ** -16 inclination ** 3 stellar dynamics ** 99 primary era ** 16
{ "same": { "eccentric anomaly": "48", "primary era": "16" }, "different": { "secondary movement": "-16", "inclination": "3", "stellar dynamics": "99" } }
import json with open("ocean.json", "w") as oceanFile: data = json.dumps(oceanFile) json.dump(data, oceanFile)

Источник

Читайте также:  Btc у api python

Работа с JSON

Как всегда, ввод-вывод в задачах этого листка может быть как стандартным, так и файловым (input.txt/output.txt). Используемая кодировка для русских букв: UTF-8.

A: Считываем JSON

city: Москва country: Россия street: Большая Дмитровка

B: Записываем JSON

Решите обратную задачу. Программа получает на вход пары ключ–значение, разделённых двоеточием и пробелом. Создайте словарь из этих пар (все значения считаем строками) и выведите его в формате JSON.

city: Москва country: Россия street: Большая Дмитровка

C: Разные типы JSON

  • Строки (рекомендуется представление в кодировке UTF-8). Например, «Hello».
  • Числа (целые или вещественные). Например, 179 или 1.79.
  • Логические (true или false).
  • null (нулевое значение).
  • Массивы (списки), задаются в квадратных скобках. Например, [1, 2, 3] .
  • Объекты JSON (словари), задаются в фигурных скобках. Например, .

Вам дан JSON-объект, являющийся списком. Пройдитесь по его элементам, и со всеми элементами сделайте следующее:

Если это строка, добавьте к конец строки восклицательный знак.

Если это число, то увеличьте его на 1.

Если это логическое значение, то инвертируйте его.

Если это список, то удвойте его.

Если это объект, то добавьте к нему новый атрибут с ключом «newkey» и пустым значением.

Если это пустое значение, то удалите его из списка.

["Hello", 179, 0.5, true, null, [1, 2, 3], ]
["Hello!", 180, 1.5, false, [1, 2, 3, 1, 2, 3], ]

D: Обновление объекта

Даны два объекта JSON. Необходимо объединить их вместе по следующему правилу: результат берёт все атрибуты из первого объекта, а если во втором объекте содержатся атрибуты с такими же ключами, как и у первого объекта, или отсутстсвующие в первом объекте, то они также добавляются в результат.

E: Восстановление недостающих атрибутов

Дан список объектов JSON, у них могут быть разные атрибуты. При этом у разных объектов может быть разный набор атрибутов: некоторых атрибутов может не хватать. Добавьте ко всем объектам недостающие атрибуты: создайте их, записав туда значения null.

F: Рекурсивное суммирование

Дан объект JSON, являющийся списком. Элементами списка могут быть только числа или аналогичные списки, содержащие числа и вложенные списки и т.д. Найдите сумму всех чисел во всех списках.

G: Рекурсивный обход

Дан объект JSON, являющийся словарём. Атрибутами словаря могут быть числа, строки или аналогичные словари.

Выведите все пары ключ–значение словаря, рекурсивно выводя значения атрибутов всех дочерних словарей. При выводе атрибутов необходимо перечислять имена всех ключей, начиная с верхнего уровня, разделяя их точками (см. пример).

< "firstName": "Иван", "lastName": "Иванов", "birthDate": < "day": 10, "month": "October", "year": 2002 >, "address": < "streetAddress": "Московское ш., 101, кв.101", "city": < "region": "Ленинградская область", "type": "город", "cityName": "Сосново" >, "postalCode": "101101" > >
address.city.cityName: Сосново address.city.region: Ленинградская область address.city.type: город address.postalCode: 101101 address.streetAddress: Московское ш., 101, кв.101 birthDate.day: 10 birthDate.month: October birthDate.year: 2002 firstName: Иван lastName: Иванов

H: Рекурсивное обновление

Даны два объекта JSON, являющихся словарём. Атрибутами словаря могут быть числа, строки или аналогичные словари (как в предыдущей задаче).

Выполните обновление первого объекта данными из второго объекта. При этом если атрибут с одинаковым названием и в первом, и во втором объекте является словарём, необходимо выполнить процедуру обновление рекурсивно для этого объекта.

Если же атрибут с одинаковым ключом является словарём только у одного из двух объектов, то берётся значение второго объекта.

Источник

Python JSON Exercise

This Python JSON exercise helps Python developers to practice JSON creation, manipulation, and parsing. As you know, JSON (an acronym for JavaScript Object Notation) is a data-interchange format and is commonly used for client-server communication.

Read Python JSON tutorials for any help.

This exercise includes the following: –

  • It has 9 questions and solutions provided for each question.
  • Each question includes a specific JSON concept you need to learn. When you complete each question, you get more familiar with JSON encoding and decoding in Python.

Use Online Code Editor to solve exercise questions.

Table of contents

Exercise 1: Convert the following dictionary into JSON format

Expected Output:

import json data = jsonData = json.dumps(data) print(jsonData)

Exercise 2: Access the value of key2 from the following JSON

import json sampleJson = """""" # write code to print the value of key2

Expected Output:

import json sampleJson = """""" data = json.loads(sampleJson) print(data['key2'])

Exercise 3: PrettyPrint following JSON data

PrettyPrint following JSON data with indent level 2 and key-value separators should be («,», » syntax» > sampleJson =

Expected Output:

import json sampleJson = prettyPrintedJson = json.dumps(sampleJson, indent=2, separators=(",", " wp-block-heading" >Exercise 4: Sort JSON keys in and write them into a file 

Sort following JSON data alphabetical order of keys

sampleJson =

Expected Output:

import json sampleJson = print("Started writing JSON data into a file") with open("sampleJson.json", "w") as write_file: json.dump(sampleJson, write_file, indent=4, sort_keys=True) print("Done writing JSON data into a file")

Exercise 5: Access the nested key ‘salary’ from the following JSON

import json sampleJson = """ < "company":< "employee":< "name":"emma", "payble":< "salary":7000, "bonus":800 >> > >""" # write code to print the value of salary

Expected Output:

import json sampleJson = """ < "company":< "employee":< "name":"emma", "payble":< "salary":7000, "bonus":800 >> > >""" data = json.loads(sampleJson) print(data['company']['employee']['payble']['salary']) 

Exercise 6: Convert the following Vehicle Object into JSON

import json class Vehicle: def __init__(self, name, engine, price): self.name = name self.engine = engine self.price = price vehicle = Vehicle("Toyota Rav4", "2.5L", 32000) # Convert it into JSON format

Expected Output:

import json from json import JSONEncoder class Vehicle: def __init__(self, name, engine, price): self.name = name self.engine = engine self.price = price class VehicleEncoder(JSONEncoder): def default(self, o): return o.__dict__ vehicle = Vehicle("Toyota Rav4", "2.5L", 32000) print("Encode Vehicle Object into JSON") vehicleJson = json.dumps(vehicle, indent=4, cls=VehicleEncoder) print(vehicleJson)

Exercise 7: Convert the following JSON into Vehicle Object

For example, we should be able to access Vehicle Object using the dot operator like this.

vehicleObj.name, vehicleObj.engine, vehicleObj.price
import json class Vehicle: def __init__(self, name, engine, price): self.name = name self.engine = engine self.price = price def vehicleDecoder(obj): return Vehicle(obj['name'], obj['engine'], obj['price']) vehicleObj = json.loads('< "name": "Toyota Rav4", "engine": "2.5L", "price": 32000 >', object_hook=vehicleDecoder) print("Type of decoded object from JSON Data") print(type(vehicleObj)) print("Vehicle Details") print(vehicleObj.name, vehicleObj.engine, vehicleObj.price)

Exercise 8: Check whether following json is valid or invalid. If Invalid correct it

Python provides The json.tool module to validate JSON objects from the command line. Run the following command.

Command: echo "JSON DATA" | python -m json.tool

echo < "company":< "employee":< "name":"emma", "payble":< "salary":7000 "bonus":800>> > > | python -m json.tool 
Expecting ',' delimiter: line 1 column 68 (char 67)

Just add ',' after "salary":7000 to solve the error.

import json def validateJSON(jsonData): try: json.loads(jsonData) except ValueError as err: return False return True InvalidJsonData = """ < "company":< "employee":< "name":"emma", "payble":< "salary":7000 "bonus":800>> > >""" isValid = validateJSON(InvalidJsonData) print("Given JSON string is Valid", isValid)

Exercise 9: Parse the following JSON to get all the values of a key ‘name’ within an array

Expected Output:

import json sampleJson = """[ < "id":1, "name":"name1", "color":[ "red", "green" ] >, < "id":2, "name":"name2", "color":[ "pink", "yellow" ] >]""" data = [] try: data = json.loads(sampleJson) except Exception as e: print(e) dataList = [item.get('name') for item in data] print(dataList) 

Did you find this page helpful? Let others know about it. Sharing helps me continue to create free Python resources.

About Vishal

I’m Vishal Hule, Founder of PYnative.com. I am a Python developer, and I love to write articles to help students, developers, and learners. Follow me on Twitter

Python Exercises and Quizzes

Free coding exercises and quizzes cover Python basics, data structure, data analytics, and more.

  • 15+ Topic-specific Exercises and Quizzes
  • Each Exercise contains 10 questions
  • Each Quiz contains 12-15 MCQ

Источник

Оцените статью