so laden Sie eine json in ein pandas dataframe?
Ich bin mit einem REST API
zu bekommen json
- Datei wie folgt:
import urllib2
import pandas as pd
import numpy as np
import requests
request='myrequest'
data= requests.get(request)
json=data.json()
df=pd.DataFrame(json)
und der dataframe sieht aus wie
items
0 {u'access': u'all', u'count': 501, u'time': 2014}
1 {u'access': u'all', u'count': 381, u'time': 2015}
Wie kann ich mich verwandeln, in eine einzige Spalte (das sieht aus wie ein Wörterbuch) in die richtigen Spalten in Pandas?
BEARBEITEN
die rohen json-Daten sieht wie folgt aus
{
"items": [
{
"access": "all",
"count": 200,
"time": 2015
},
{
"access": "all",
"count": 14,
"time": 2015
},
]
}
Dank!
- Laden Sie einfach JSON zu einem Wörterbuch vor der Umwandlung in einen DataFrame.
- danke! wie kann ich das tun?
- Hinzufügen Sie können Ihre Probe-Datei? Ich poste eine Antwort.
- Können Sie versuchen, diese?
pd.DataFrame(json['items'])
(Es wäre besser, wenn Sie nicht Namen, Wörterbuch 'json', da es ein Modul Namen, die Sie verwenden können.)
Du musst angemeldet sein, um einen Kommentar abzugeben.
pd.read_json(json_str)
Hier ist die Pandas Dokumentation.
EDIT:
Für eine Liste von json-str kannst du auch nur:
json
ist eine Liste, sollten Sieread_json
für jedes element der Liste. Die Eingabe vonread_json
sollte einstr
.json_lst
?json
sjson_lst
ist ein beliebiger name. Diemap
im one-liner auf der Unterseite sagt, gelten die importiertenjson.loads
Funktionjson
in der Liste.Gut, es scheint mir, dass JSON importieren", um die Verschachtelung mit Abweichungen von dicts und Listen, während Pandas benötigen ein Einzel-dict-Erhebung mit wiederholenden Elementen. Sie müssen also ein wenig Umstellung, wenn Sie nicht übereinstimmen.
Vorausgesetzt, ich interpretiere die Struktur der JSON-richtig (und ich vielleicht nicht da, Sie werden nur den Druck das Endprodukt, nicht die JSON-Struktur), wie es aussieht ist es eine Liste von Wörterbüchern. Wenn das der Fall ist, hier ist die Lösung:
Edit:
Werte geliefert werden, um meinen code zu arbeiten, benötigen Sie lediglich die folgenden vor:
Ich denke, das sollte funktionieren, aber es hängt davon ab, wie die Anforderungen verarbeitet JSON. Geben Sie mir einen Ausdruck des
json
Objekt, wenn es nicht funktioniert.