首页 > 解决方案 > 列表中的字典索引

问题描述

我是 Python 新手,目前正在尝试在 Python 中使用 JSON 文件。我的 JSON 文件如下所示(请忽略内容):

    [{
  "Id" : "5444",
  "date" : "2012-02-01",
  "data" : [ {
    "Name" : "Fred Smith",
    "Sex" : "Male",
    "description" : "{\"car\": \"Suzuki\", \"salary\": 100000, \"married\": null}"
  }, {
    "occupation" : "smith",
    "City" : "New York",
    "data" : "{\"height\": \"6ft\", \"GMATscores\": [{\"verbal\": \"None\", \"reasoning\": 200, \"numerical\": 0.0}]}"
  } ]
} ]

我已经挣扎了几个小时,我如何从这个烂摊子中提取“推理:200”的价值?

标签: pythonjson

解决方案


你可以使用json模块:

import json 



my_json = [{
  "Id" : "5444",
  "date" : "2012-02-01",
  "data" : [ {
    "Name" : "Fred Smith",
    "Sex" : "Male",
    "description" : "{\"car\": \"Suzuki\", \"salary\": 100000, \"married\": null}"
  }, {
    "occupation" : "smith",
    "City" : "New York",
    "data" : "{\"height\": \"6ft\", \"GMATscores\": [{\"verbal\": \"None\", \"reasoning\": 200, \"numerical\": 0.0}]}"
  } ]
} ]

inner_json = json.loads(my_json[0]['data'][1]['data'])

# {'height': '6ft',
# 'GMATscores': [{'verbal': 'None', 'reasoning': 200, 'numerical': 0.0}]}

inner_json['GMATscores'][0]['reasoning']
# 200

推荐阅读