Python 带熊猫的嵌套JSON
我试图从下面的JSON文件创建一个数据帧。我一直在使用Python 带熊猫的嵌套JSON,python,json,pandas,ipython,ipython-notebook,Python,Json,Pandas,Ipython,Ipython Notebook,我试图从下面的JSON文件创建一个数据帧。我一直在使用d1=pd.read_json('user.json'),但这并不是为嵌套值accessToken、facebookId等创建列 有没有一种简单的方法告诉熊猫处理这些嵌套值 这个问题已经在其他地方提出过,但我要求嵌套值作为列输入到更大的数据框中 { "_id": 11, "claimToFame": "Send me some tunes...or your GitHub!", "commentCount": 230, "coverImage
d1=pd.read_json('user.json')
,但这并不是为嵌套值accessToken、facebookId
等创建列
有没有一种简单的方法告诉熊猫处理这些嵌套值
这个问题已经在其他地方提出过,但我要求嵌套值作为列输入到更大的数据框中
{
"_id": 11,
"claimToFame": "Send me some tunes...or your GitHub!",
"commentCount": 230,
"coverImage": "img.jpg",
"currentLanguage": "en-GB",
"dateOfBirth": "07/29/1982",
"email": "l@gmail.com",
"facebookDetails": {
"accessToken": "123",
"facebookId": "123"
}
,
"facebookId": 1,
"firstName": "David",
"followerCount": 422403,
"following": false,
"followingCount": 253,
"googleDetails":
{
"googleId": "111411986454983058357",
"accessToken": "123"
}
}
这里有一个方法:
import pandas as pd
import json
data = json.dumps([{
"_id": 11,
"claimToFame": "Send me some tunes...or your GitHub!",
"commentCount": 230,
"coverImage": "img.jpg",
"currentLanguage": "en-GB",
"dateOfBirth": "07/29/1982",
"email": "l@gmail.com",
"facebookDetails": {
"accessToken": "123",
"facebookId": "123"
}
,
"facebookId": 1,
"firstName": "David",
"followerCount": 422403,
"following": False,
"followingCount": 253,
"googleDetails":
{
"googleId": "111411986454983058357",
"accessToken": "123"
}
}], separators=(',',':'))
pd.read_json(data)
使用文件对象
FILEOBJECT
中的数据,使用json模块将数据加载到python结构中
import json
jsondata = json.load(FILEOBJECT)
然后可以使用json_normalize函数创建数据帧
import pandas as pd
usable_dataframe = pd.io.json.json_normalize(jsondata)
在您的情况下,这将导致以下列的数据帧:
[\u id,claimToFame,commentCount,coverImage,currentLanguage,dateof birth,email,facebookDetails.accessToken,facebookDetails.facebookId,facebookDetails.facebookId,firstName,followerCount,followerCount,googleDetails.accessToken,googleDetails.googleId]您好,在进一步测试后效果很好,但您能帮我一件事吗。例如,facebookDteails列现在包含:“{“accessToken”:“123”,“facebookId”:“123”}”是否有任何方法可以在它们自己的列中获取accessToken和facebookId?