Вступление

JSON (сокращение от JavaScript Object Notation) стал одним из качественных форматов для отправки данных по HTTP-запросу между веб-браузерами и другими приложениями. это гораздо более свободный формат, чем табличная текстовая форма, такая как CSV. Вот пример:

obj = """
{"name": "Wes",
"places_lived": ["United States", "Spain", "Germany"],
"pet": null,
"siblings": [{"name": "Scott", "age": 30, "pets": ["Zeus", "Zuko"]},
{"name": "Katie", "age": 38,
"pets": ["Sixes", "Stache", "Cisco"]}]
}
"""

Описание

JSON может быть почти правильным кодом Python, за исключением его нулевого значения null и нескольких других нюансов (например, запрета запятых в конце списков). основные типы - это объекты (dicts), массивы (списки), строки, числа, логические значения и значения NULL. Все ключи в объекте должны быть строками. Существует несколько библиотек Python для чтения и записи данных JSON. Я буду использовать здесь JSON, потому что он преобразован в стандартную библиотеку Python. Чтобы преобразовать строку JSON в форму Python, используйте json.loads:

In [62]: import json
In [63]: result = json.loads(obj)
In [64]: result
Out[64]:
{'name': 'Wes',
'pet': None,
'places_lived': ['United States', 'Spain', 'Germany'],
'siblings': [{'age': 30, 'name': 'Scott', 'pets': ['Zeus', 'Zuko']},
{'age': 38, 'name': 'Katie', 'pets': ['Sixes', 'Stache', 'Cisco']}]}
json.dumps , on the opposite hand, converts a Python object back to JSON:
In [65]: asjson = json.dumps(result)

Как мы конвертируем объект JSON или список объектов в DataFrame или другой механизм для анализа, зависит от вас. Для удобства вы передадите список dicts (которые ранее были объектами JSON) в конструктор DataFrame и выберете подмножество информационных полей:

In [66]: siblings = pd.DataFrame(result['siblings'], columns=['name', 'age'])
In [67]: siblings
Out[67]:
name age
0 Scott  30
1 Katie  38

pandas.read_json может автоматически преобразовывать наборы данных JSON в определенном порядке в Series или DataFrame. Например:

In [68]: !cat examples/example.json
[{"a": 1, "b": 2, "c": 3},
{"a": 4, "b": 5, "c": 6},
{"a": 7, "b": 8, "c": 9}]

Параметры по умолчанию для pandas.read_json предполагают, что каждый объект в массиве JSON является строкой в ​​таблице:

In [69]: data = pd.read_json('examples/example.json')
In [70]:
Out[70]:
   a b c
0 1 2 3
1 4 5 6
2 7 8 9

Для расширенного примера чтения и управления данными JSON (включая вложенные записи). Если мы хотим экспортировать данные из панд в JSON, можно использовать to_json методы в Series и DataFrame:

In [71]: print(data.to_json())
{"a":{"0":1,"1":4,"2":7},"b":{"0":2,"1":5,"2":8},"c":{"0":3,"1":6,"2":9}}
In [72]: print(data.to_json(orient='records'))
[{"a":1,"b":2,"c":3},{"a":4,"b":5,"c":6},{"a":7,"b":8,"c":9}]

Для получения дополнительной информации посетите: https://www.technologiesinindustry4.com/2021/05/python-json-data.html

Больше контента на plainenglish.io