使用pandas标识JSON中的标题
我有这个JSON文件使用pandas标识JSON中的标题,json,python-3.x,pandas,Json,Python 3.x,Pandas,我有这个JSON文件 *[ { "name": "Kitty", "species" : "cat", "foods": { "likes": ["fresh food"], "dislikes": ["stale food"] } }, { "name": "Pupster", "species" : "dog", "foods": { "likes": ["tomatoes", "peas
*[
{
"name": "Kitty",
"species" : "cat",
"foods": {
"likes": ["fresh food"],
"dislikes": ["stale food"]
}
},
{
"name": "Pupster",
"species" : "dog",
"foods": {
"likes": ["tomatoes", "peas"],
"dislikes": ["bread"]
}
},
{
"name": "Tux",
"species" : "cat",
"foods": {
"likes": ["fancy dishes"],
"dislikes": ["basic cat food"]
}
}
]*
我是这样读这个文件的:
content = requests.get("https://raw.githubusercontent.com/LearnWebCode/json-example/master/animals-3.json")
data = json.loads(content.content)
df = pd.DataFrame(data)
但我想要的是只读取JSON文件头并将其存储在列表中。我有一个类似的代码
getcolumns = list(df.columns.values)
但我只知道以下几点
- 名字
- 种类
- 食物
- 名字
- 种类
- 食物
- 喜欢
- 不喜欢
我是新使用熊猫的,任何建议都可以接受列表理解应该有效:
j = [
{
"name": "Kitty",
"species" : "cat",
"foods": {
"likes": ["fresh food"],
"dislikes": ["stale food"]
}
},
{
"name": "Pupster",
"species" : "dog",
"foods": {
"likes": ["tomatoes", "peas"],
"dislikes": ["bread"]
}
},
{
"name": "Tux",
"species" : "cat",
"foods": {
"likes": ["fancy dishes"],
"dislikes": ["basic cat food"]
}
}
]
getcolumns = [x for x in j[0]] + [x for x in j[0]['foods']]
# ['name', 'species', 'foods', 'likes', 'dislikes']
或者,如果需要数据帧:
from pandas.io.json import json_normalize
df = json_normalize(j)
foods.dislikes foods.likes name species
0 [stale food] [fresh food] Kitty cat
1 [bread] [tomatoes, peas] Pupster dog
2 [basic cat food] [fancy dishes] Tux cat
清单理解应该有效:
j = [
{
"name": "Kitty",
"species" : "cat",
"foods": {
"likes": ["fresh food"],
"dislikes": ["stale food"]
}
},
{
"name": "Pupster",
"species" : "dog",
"foods": {
"likes": ["tomatoes", "peas"],
"dislikes": ["bread"]
}
},
{
"name": "Tux",
"species" : "cat",
"foods": {
"likes": ["fancy dishes"],
"dislikes": ["basic cat food"]
}
}
]
getcolumns = [x for x in j[0]] + [x for x in j[0]['foods']]
# ['name', 'species', 'foods', 'likes', 'dislikes']
或者,如果需要数据帧:
from pandas.io.json import json_normalize
df = json_normalize(j)
foods.dislikes foods.likes name species
0 [stale food] [fresh food] Kitty cat
1 [bread] [tomatoes, peas] Pupster dog
2 [basic cat food] [fancy dishes] Tux cat
“喜欢”和“不喜欢”属于“食物”类别,如果你进一步将这两个分开,那么“食物”一栏中就不会有任何内容。该表将包含“名称”、“种类”、“喜欢”和“不喜欢”这两个词。“喜欢”和“不喜欢”属于“食品”类别,如果你进一步将这两个词分开,那么“食品”一栏中将没有任何内容。该表将包含“名称”、“种类”、“喜欢”和“不喜欢”