
Вступление
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