【问题标题】:How to extract and print a list of values from my JSON data?如何从我的 JSON 数据中提取和打印值列表?
【发布时间】:2020-09-25 23:44:01
【问题描述】:

我在 Python (3.8) 中工作,并且在运行 Python 文件后成功调用了一个 API,让它在命令行中打印 JSON。现在,我希望能够打印特定的信息列表(如 JSON 中的所有名称),然后将该列表保存为自己的数据集,但我遇到了障碍。

我正在使用的 JSON 示例:

{
  "data": {
    "employees": [
      {
        "fields": {
          "name": "Buddy",
          "superheroName": "Syndrome",
          "workEmail": "syndrome@example.com",
        }
      },
      {
        "fields": {
          "name": "Helen Parr",
          "superheroName": "Elastigirl",
          "workEmail": "elastigirl@example.com",
        }
      }
   ]
}

到目前为止,我已经尝试了以下操作,并且能够打印“数据”,但是每当我尝试打印另一个“层”并说...“员工”或“字段”时,我撞墙了。

url = "my API url"

response = requests.get(url)
if response.status_code != 200:
    print('Error with status code {}'.format(response.status_code))
    exit()
           
jsonResponse = response.json()
jsonPretty = json.dumps(jsonResponse, indent=4, sort_keys=True)
jsonDictionary = json.loads(jsonPretty)
keys = jsonDictionary.keys()
for key in jsonDictionary.keys():
    print(key)

理想情况下,有人可以分享我如何访问“名称”JSON 值并让 Python 将其打印为如下列表的见解,例如:

Buddy
Helen Parr

【问题讨论】:

  • 您只打印keys,而不是values(可以通过keys 访问)。尝试jsonDictionary[key] ....

标签: python json python-3.x parsing


【解决方案1】:

JSON 文件基本上是嵌套字典。 jsonDictionary 仅包含一个键和该键下的一个条目:data 和另一个字典,其余的分别是您的结果。

如果您想专门访问name 字段:

employeesDict = jsonDictionary['data']
feildsDictList = employeesDict['employees']

firstFieldsDict = fieldsDictList[0]
secondFieldsDict = fieldsDictList[1]

firstName = firstFieldsDict['name']
secondNAme = secondFieldsDict['name']

【讨论】:

    【解决方案2】:

    你可以这样访问它(确保它已经是字典):

    for i in h['data']['employees']:
        print(i['fields']['name'])
    

    这样您就可以使用 i['fields']['name'] 访问名称

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-09
      • 2019-02-16
      • 1970-01-01
      • 1970-01-01
      • 2017-12-10
      相关资源
      最近更新 更多