İç içe JSON ve Pandalar Normale

oy
1

Bazı JSON veri olarak aşağıda döndü sahiptir: (ı yapısını değiştiremez)

[
  {
    id: d6aca8ac,
    owner: test,
    sections: {
      summary: {
        id: d417cd0e,
        notes: ,
        created_at: 2018-11-26T19:02:06Z
      },
      weather: {
        id: 7ef34660,
        notes: 
      },
      task: {
        id: 255d86dc,
        tasks: [
          {
            id: t1,
            total_hours: 176.0,
            updated_at: 2018-11-26T19:02:06Z,
            created_at: 2018-11-26T19:02:06Z
          },
          {
            id: t2,
            total_hours: 176.0,
            updated_at: 2018-11-26T19:02:06Z,
            created_at: 2018-11-26T19:02:06Z
          }
        ]
      }
    }
  }
]

Böyle bir dataframe içine görevleri almak için pandalar gelen json_normalise kullanmaya çalışıyorum:

+----+-------------+----------------------+----------------------+
| id | total_hours |      updated_at      |      created_at      |
+----+-------------+----------------------+----------------------+
| t1 |         176 | 2018-11-26T19:02:06Z | 2018-11-26T19:02:06Z |
| t2 |         176 | 2018-11-26T19:02:06Z | 2018-11-26T19:02:06Z |
+----+-------------+----------------------+----------------------+

Ben dosya bağlı olarak farklı bir kayıt yoluna başvuran bir klasörde JSON Yüzlerce dosya üzerinde dolaşır bir senaryo var ve gerçekten (Benzer bir şey kullanarak bu sonucu alabilirsiniz görmek istiyorum yani bu bu bir yapıya hariç hepsi için çalışıyor Bu) Açıkçası çalışmaz:

normalised_data = json_normalize(data=json_data, record_path=['sections', 'task', 'tasks'], meta=['id'], meta_prefix='parent_' , errors='ignore')

komutunun bu tarz sonra kullanılacak cant benim en iyi seçenek ne olurdu? Bu yüzden bu özel dosyayı ayıran düşünmek gerekir.

Teşekkürler,

Oluştur 27/11/2018 saat 18:09
kaynak kullanıcı
Diğer dillerde...                            


1 cevaplar

oy
1

Şunlara ait iç içe geçmiş bir listesini kullanarak vermeyerek record_path, aşağıdaki yolların hepsi aslında endekse dizeleri ilk yolu, döndürdüğü anahtarlarını çalışıyoruz, bu yüzden bir alıyoruz farz ediyorum TypeError.

Bunu kendi alt liste tüm yolu tanımlamak gerekir:

pd.io.json.json_normalize(json_data, record_path=[['sections', 'task', 'tasks']])

             created_at  id  total_hours            updated_at
0  2018-11-26T19:02:06Z  t1        176.0  2018-11-26T19:02:06Z
1  2018-11-26T19:02:06Z  t2        176.0  2018-11-26T19:02:06Z
Cevap 27/11/2018 saat 18:25
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more