Форум сайта python.su
привет. не получается превратить многоуровневый json в обычную таблицу для последующего анализа. требуется помощь.
вот кусок json файла(для 2х строк):
{“type”: “FeatureCollection”, “features”: [пробовал 2 способа:
{“type”: “Feature”, “geometry”: {“type”: “Point”, “coordinates”: }, “properties”: {“id”: 1563301, “gibdd_id”: “195406532”, “point”: {“lat”: 55.961122, “long”: 37.412325}, “participant_categories”: , “severity”: “Тяжёлый”, “region”: “Молжаниновский”, “parent_region”: “Москва”, “datetime”: “2016-07-11 21:20:00”, “address”: “г Москва, ш Международное”, “participants_count”: 2, “injured_count”: 1, “dead_count”: 0, “category”: “Наезд на пешехода”, “light”: “Светлое время суток”, “nearby”: , “weather”: , “road_conditions”: , “vehicles”: [{“brand”: “ВАЗ”, “model”: “Kalina”, “color”: “Серый”, “year”: 2011, “category”: “А-класс (особо малый) до 3,5 м”, “participants”: [{“health_status”: “Не пострадал”, “role”: “Водитель”, “gender”: “Мужской”, “years_of_driving_experience”: 6, “violations”: }]}], “participants”: [{“health_status”: “Раненый, находящийся (находившийся) на стационарном лечении”, “role”: “Пешеход”, “gender”: “Мужской”, “violations”: }], “tags”: , “scheme”: “820”}},
{“type”: “Feature”, “geometry”: {“type”: “Point”, “coordinates”: }, “properties”: {“id”: 1529678, “gibdd_id”: “192559706”, “point”: {“lat”: 55.883, “long”: 37.606}, “participant_categories”: , “severity”: “Легкий”, “region”: “Бибирево”, “parent_region”: “Москва”, “datetime”: “2016-04-14 19:10:00”, “address”: “г Москва, ул Плещеева, 4”, “participants_count”: 3, “injured_count”: 2, “dead_count”: 0, “category”: “Наезд на пешехода”, “light”: “Светлое время суток”, “nearby”: , “weather”: , “road_conditions”: , “vehicles”: [{“brand”: “SKODA”, “model”: “Octavia”, “color”: “Серый”, “year”: 2012, “category”: “В-класс (малый) до 3,9 м”, “participants”: [{“health_status”: “Не пострадал”, “role”: “Водитель”, “gender”: “Женский”, “years_of_driving_experience”: 16, “violations”: }]}], “participants”: [{“health_status”: “Раненый, находящийся (находившийся) на амбулаторном лечении, либо которому по характеру полученных травм обозначена необходимость амбулаторного лечения (вне зависимости от его фактического прохождения)”, “role”: “Пешеход”, “gender”: “Женский”, “violations”: }, {“health_status”: “Раненый, находящийся (находившийся) на амбулаторном лечении, либо которому по характеру полученных травм обозначена необходимость амбулаторного лечения (вне зависимости от его фактического прохождения)”, “role”: “Пешеход”, “gender”: “Мужской”, “violations”: }], “tags”: , “scheme”: “820”}},
import json import pandas as pd with open(r'moskva.geojson', encoding="utf-8") as f: data = json.loads(f.read()) data_nested = pd.json_normalize(data, record_path =['features'], max_level=3) print(data_nested.head())
import json from flatten_json import flatten import pandas as pd with open(r'moskva.geojson', encoding="utf-8") as f: data = json.loads(f.read()) flat = flatten(data) data_nested = pd.json_normalize(flat) print(data_nested.head())
Отредактировано Mysterion (Окт. 21, 2021 21:39:32)
Офлайн