У меня проблема с преобразованием JSON в пригодный для использования фрейм данных. Проблема возникает, когда исходный JSON имеет несколько уровней, и результат использования fromJSON заканчивается тем, что он становится столбцом фреймов данных в пределах большего фрейма данных. Этот столбец фреймов данных также содержит списки и фреймы данных внутри себя. Я хотел бы сгладить весь файл, чтобы извлечь один кадр данных и выбрать необходимые столбцы оттуда.
Я могу использовать API Shopify в качестве примера:
"line_items": [
{
"fulfillable_quantity": 1,
"fulfillment_service": "amazon",
"fulfillment_status": "fulfilled",
"grams": 500,
"id": 669751112,
"price": "199.99",
"product_id": 7513594,
"quantity": 1,
"requires_shipping": true,
"sku": "IPOD-342-N",
"title": "IPod Nano",
"variant_id": 4264112,
"variant_title": "Pink",
"vendor": "Apple",
"name": "IPod Nano - Pink",
"gift_card": false,
"price_set": {
"shop_money": {
"amount": "199.99",
"currency_code": "USD"
},
"presentment_money": {
"amount": "173.30",
"currency_code": "EUR"
}
},
"properties": [
{
"name": "custom engraving",
"value": "Happy Birthday Mom!"
}
],
"taxable": true,
"tax_lines": [
{
"title": "HST",
"price": "25.81",
"price_set": {
"shop_money": {
"amount": "25.81",
"currency_code": "USD"
},
"presentment_money": {
"amount": "20.15",
"currency_code": "EUR"
}
},
"rate": 0.13
}
],
"total_discount": "5.00",
"total_discount_set": {
"shop_money": {
"amount": "5.00",
"currency_code": "USD"
},
"presentment_money": {
"amount": "4.30",
"currency_code": "EUR"
}
},
"discount_allocations": [
{
"amount": "5.00",
"discount_application_index": 2,
"amount_set": {
"shop_money": {
"amount": "5.00",
"currency_code": "USD"
},
"presentment_money": {
"amount": "3.96",
"currency_code": "EUR"
}
}
}
]
}
]
Если я использую следующий код для извлечения позиций:
Orders <- fromJSON(paste0("https:key:password//@random-shop.myshopify.com/admin/orders.json?status=any&created_at_max=",Sys.Date()-2,"T23:59:59-05:00&limit=250&created_at_min=",Sys.Date()-2,"T00:00:00-05:00&fields=created_at,id,name,total-price,number,line_items"),flatten = T)
Orders <- Orders$orders%>%
flatten()
str(Orders)
Позиции будут отображаться в виде списка фреймов данных различной длины. В этих фреймах данных поля могут варьироваться от отдельных списков до фреймов данных.
К сожалению, это сложная проблема для полной репликации.
Есть ли способ взять список фреймов данных и сделать каждую переменную отдельным столбцом?