2017-03-21 11 views
1

Ich habe folgendes json:Wie in einem Pandas Datenframe die folgenden Json lesen?

[ 
    [ 
     { 
      "A": "2017-02-02T11:57:41+0000", 
      "B": "agent", 
      "C": "hi how are you son." 
     }, 
     { 
      "A": "2017-02-01T22:19:58+0000", 
      "B": "user2", 
      "C": "M contestan" 
     }, 
     { 
      "A": "2017-02-01T22:19:42+0000", 
      "B": "user2", 
      "C": "preetty thanks you?" 
     }, 
     { 
      "A": "2017-02-01T22:19:28+0000", 
      "B": "user2", 
      "C": "the cat sat over the fox" 
     } 
    ] 
] 

Wie kann ich es in eine Pandas Datenrahmen wie folgt zusammensetzen ?:

A B C 
2017-02-02T11:57:41+0000 agent Hola Alex, si no has realizado la modificación de los datos afiliados, por favor confírmanos tu DNI, celular y operador para revisarlo. Gracias. 
.... 
2017-02-01T16:22:30+0000 user1 Hola me han depositado un dinero a mi nombre, no tengo cuenta en este banco, puedo saber por aquí si ya puedo cobrar? DNI 42782263 gracias 

ich mit ihm zu bauen versucht:

df = pd.DataFrame.apply(lambda x: map(x.from_records, json_path)) 

Und

df = pd.DataFrame('../path/file.json') 

Und mit read_json(), aber es funktioniert nicht. So, wie kann ich den Datenrahmen von der json?

Antwort

1
In [17]: import json 

Angenommen, Sie die folgende JSON-String haben:

In [18]: s 
Out[18]: '[[{"A": "2017-02-02T11:57:41+0000", "B": "agent", "C": "Hola Alex, si no has realizado la modificacin de los datos afiliados, por 
favor confrmanos tu DNI, celular y operador para revisarlo. Gracias."}, {"A": "2017-02-01T22:19:58+0000", "B": "user2", "C": "Me podran ayud 
ar?, estoy llamando al CC y no contestan"}, {"A": "2017-02-01T22:19:42+0000", "B": "user2", "C": "No me llega el sms con la clave token"}, { 
"A": "2017-02-01T22:19:28+0000", "B": "user2", "C": "Tengo problemas para hacer pagos de servicios desde la app"}, {"A": "2017-02-01T22:19:1 
8+0000", "B": "user2", "C": "Buenas tardes"}], [{"A": "2017-02-01T22:19:12+0000", "B": "agent", "C": "Hola Alexander, as es, el dinero ya se 
encuentra disponible puedes acercarte a cualquiera de nuestras tiendas el nmero es 1703070024597. Buenas noches"}, {"A": "2017-02-01T16:22: 
30+0000", "B": "user1", "C": "Hola me han depositado un dinero a mi nombre, no tengo cuenta en este banco, puedo saber por aqu si ya puedo c 
obrar? DNI 42782263 gracias"}]]' 

Sie können es analysieren:

In [19]: data = json.loads(s) 

und bauen ein Datenrahmen:

In [31]: pd.DataFrame.from_records(np.concatenate(data)) 
Out[31]: 
          A  B          C 
0 2017-02-02T11:57:41+0000 agent Hola Alex, si no has realizado la mo... 
1 2017-02-01T22:19:58+0000 user2 Me podran ayudar?, estoy llamando al... 
2 2017-02-01T22:19:42+0000 user2 No me llega el sms con la clave token 
3 2017-02-01T22:19:28+0000 user2 Tengo problemas para hacer pagos de ... 
4 2017-02-01T22:19:18+0000 user2       Buenas tardes 
5 2017-02-01T22:19:12+0000 agent Hola Alexander, as es, el dinero ya ... 
6 2017-02-01T16:22:30+0000 user1 Hola me han depositado un dinero a m... 
+1

Ohhh wahr ... .. das '[0]' um in die Liste zu gelangen .... – tumbleweed

+0

Danke, Max ... Die Liste ist jedoch eine verschachtelte Liste (d. H. Ich habe mehrere Listen von Dicts), aus diesem Grund bekomme ich nur eine Liste in die 'df'. Ich habe versucht zu tun:' df = pd.DataFrame (* d [0]) 'und' pd.DataFrame (d [ 0] [:]) '... Bei meinem vorherigen Versuch habe ich versucht, ein Lambda zuzuordnen oder zu verwenden ... wie kann ich dieses Problem beheben ?. – tumbleweed

+1

@tumbleweed, ich habe die Antwort aktualisiert - bitte überprüfen Sie – MaxU

Verwandte Themen