У меня есть json, который выглядит следующим образом:
{
"formatVersion" : "v1.0",
"disclaimer" : "This pricing list is for informational purposes only ..."
"offerCode" : "AmazonEC2",
"version" : "20181122020351",
"publicationDate" : "2018-11-22T02:03:51Z",
"products" : {
"G5FFNNK98ETA2UBE" : {
"sku" : "G5FFNNK98ETA2UBE",
"productFamily" : "Compute Instance",
"attributes" : {
"servicecode" : "AmazonEC2",
"location" : "Asia Pacific (Tokyo)",
"locationType" : "AWS Region",
"instanceType" : "c4.4xlarge",
"currentGeneration" : "Yes",
"instanceFamily" : "Compute optimized",
"vcpu" : "16",
"physicalProcessor" : "Intel Xeon E5-2666 v3 (Haswell)",
"clockSpeed" : "2.9 GHz",
"memory" : "30 GiB",
"storage" : "EBS only",
, и я пытаюсь преобразовать его в DataFrame Pandas, используя этот код:
df = pd.DataFrame()
for sku, data in json.loads(ec2offer)['products'].items():
if data['productFamily'] == 'Compute Instance':
new_df = pd.DataFrame.from_dict(data['attributes'], index=[0])
df.append(new_df, ignore_index=True)
print(df)
Перед добавлением index=[0]
, Я получаю сообщение об ошибке «ValueError: если вы используете все скалярные значения, вы должны передать индекс» Поэтому я добавил, что на основании ответа на Построение панд DataFrame из значений в переменных дает «ValueError:Если вы используете все скалярные значения, вы должны передать индекс "
Теперь я получаю эту ошибку вместо:
TypeError: from_dict () получил неожиданный аргумент ключевого слова 'index '
TL; DR
Забудьте о коде выше.Какой самый простой способ добавить каждую структуру «атрибутов» из указанного выше json в свою собственную строку в кадре данных Pandas?
ОЖИДАЕМЫЙ ВЫХОД
instanceType memory ...
c4.4xlarge 30 Gib ...
... ... ...