У меня есть данные JSON, которые содержат три разных типа записей, которые мне нужно прочитать, проанализировать для каждого типа и сохранить как три отдельных фрейма данных.Я использовал фиктивные данные здесь, так как фактические записи довольно длинные.Данные имеют различное количество столбцов для каждого типа записи с некоторыми общими именами столбцов.Схемы в основном:
схема 1: одна запись на ИД элемента с базовыми характеристиками в широком формате, которая выглядит следующим образом:
[id,year,object_name,base_price]
схема 2 и 3: каждая представляет собой набор различных функцийв длинном формате для одного идентификатора, который выглядит следующим образом:
[id, feature1, price1]
[id, feature2, price2]
[id, feature1, size1]
[id, feature2, size2]
Вот как выглядят данные JSON
[
{"id": ["500068"], "year": ["2018"], "object_name": "barn"},
{"id": ["500069"], "year": ["2018"], "object_name": "well"},
{"id": ["500068"], "year": ["2018"], "feature": "extension","price": "65"},
{"id": ["500068"], "year": ["2018"], "feature": "stalls","price": "72"},
{"id": ["500070"], "year": ["2018"], "feature": "depth_extension","price": "55"},
{"id": ["500070"], "year": ["2018"], "feature": "cover","price": "55"},
{"id": ["500070"], "year": ["2018"], "feature": "depth_extension","size": "1050"},
{"id": ["500070"], "year": ["2018"], "feature": "cover","size": "1160"},
]
Я попытался получить JSON в формате, который я мог бы попытаться сделатьэто, но я застреваю здесь.
import pandas as pd
with open(file, 'r') as f:
data = f.readlines()
# remove the trailing "\n" from each line
data = map(lambda x: x.rstrip(), data)
# each element of 'data' is an individual JSON object.
# i want to convert it into an *array* of JSON objects
# which, in and of itself, is one large JSON object
# basically... add square brackets to the beginning
# and end, and have all the individual business JSON objects
# separated by a comma
data_json_str = "[" + ','.join(data) + "]"
# now, load it into pandas
# (I get stuck here since they are different record types
data_df = pd.read_json(data_json_str)
Я бы хотел, чтобы данные считывались в три разных фрейма данных панд с соответствующими именами столбцов.Спасибо за помощь!