2017-02-09 7 views
1

Ich habe eine einfache JSON in Django. Ich fange die Datei mit diesem Befehl data = request.body und ich möchte konvertieren es datarameDjango JSON-Datei zu Pandas Dataframe

JSON Pandas:

{ "username":"John", "subject":"i'm good boy", "country":"UK","age":25}

ich schon versucht Pandas read_json Methode und json.loads von json Bibliothek, aber es hat nicht Arbeit.

+0

Es didntt arbeiten! – dimitrisGmk

+0

Wenn ich den JSON mit dieser Formation sende funktioniert es: [{"username": "John", "Betreff": "Ich bin guter Junge", "Land": "UK", "Alter": 25} ] aber ich möchte es ohne das Array [] fangen – dimitrisGmk

+0

Fügen Sie Ihren Code hinzu, damit es einfacher wird, Ihr Problem zu verstehen. –

Antwort

2

Sie auch pd.DataFrame.from_records() verwenden können, wenn Sie json oder dictonary

df = pd.DataFrame.from_records([ json ]) OR df = pd.DataFrame.from_records([ dict. ])

oder

haben Sie müssen iterables für pandas datafra bereitstellen me:

e.g. df = pd.DataFrame({'column_1':[ values ],'column_2':[ values ]})

2

Ich glaube, Sie brauchen DataFrame Konstruktor:

json = { "username":"John", "subject":"i'm good boy", "country":"UK", "age":25 } 
print (pd.DataFrame(json, index=[0])) 
    age country  subject username 
0 25  UK i'm good boy  John 

Oder:

print (pd.DataFrame([json])) 
    age country  subject username 
0 25  UK i'm good boy  John 

EDIT:

Wenn der Eingang ist file und erhalten error:

s = pd.read_json('file.json') 

ValueError: If using all scalar values, you must pass an index

ist notwendig Add typ=Series und dann Series.to_frame von T mit transponieren konvertieren:

s = pd.read_json('file.json', typ='series') 
print (s) 
age     25 
country    UK 
subject  i'm good boy 
username   John 
dtype: object 

df = s.to_frame().T 
print (df) 
    age country  subject username 
0 25  UK i'm good boy  John 
+0

Sorry, aber es funktioniert nicht ..! – dimitrisGmk

+0

Ok, was ist 'type (json)'? – jezrael

+0

Es ist interessant, wenn Arbeit '[{" Benutzername ":" John "," Thema ":" Ich bin guter Junge "," Land ":" UK "," Alter ": 25}]' - Ich denke mit ' pd.DataFrame (json) '. Aber ohne '[]' brauchst du 'pd.DataFrame ([json])' - '' '' '' zu Variable 'json' hinzugefügt – jezrael