2017-02-09 45 views
1

我在Django一个简单的JSON。我赶上这个命令data = request.body的文件,我想将它转换为大熊猫datarameDjango的JSON文件大熊猫数据帧

JSON:

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

我已经尝试过熊猫read_json方法和JSON库json.loads但事与愿违工作。

+0

它没有工作! – dimitrisGmk

+0

如果我用这个阵型发送JSON它的工作原理: [{“用户名”:“约翰”,“主题”:“我是好孩子”,“国”:“英国”,“年龄”:25} ] ,但我想抓住它,而不[]数组 – dimitrisGmk

+0

添加您的代码,以便它会更容易理解你的问题。 –

回答

2

您也可以使用pd.DataFrame.from_records()当你有JSON或dictonary

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

您需要为pandas datafra提供迭代me:

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

2

我想你需要DataFrame构造:

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 

或者:

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

编辑:

如果输入file并获得error

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

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

是必要的附加typ=Series然后T转换Series.to_frame与转:

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

对不起,但它不起作用..! – dimitrisGmk

+0

好的,'type(json)'是什么? – jezrael

+0

有趣的是,如果工作'[{“用户名”:“约翰”,“主题”:“我是好孩子”,“国”:“英国”,“年龄”:25}]' - 我想用' pd.DataFrame(JSON)'。但如果没有[]'你需要'pd.DataFrame([json])' - 将'[]'加到变量'json' – jezrael