Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用pandas标识JSON中的标题_Json_Python 3.x_Pandas - Fatal编程技术网

使用pandas标识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

我有这个JSON文件

*[
  {
    "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

“喜欢”和“不喜欢”属于“食物”类别,如果你进一步将这两个分开,那么“食物”一栏中就不会有任何内容。该表将包含“名称”、“种类”、“喜欢”和“不喜欢”这两个词。“喜欢”和“不喜欢”属于“食品”类别,如果你进一步将这两个词分开,那么“食品”一栏中将没有任何内容。该表将包含“名称”、“种类”、“喜欢”和“不喜欢”