首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何从Python中解析的JSON中的键:值对中抓取值

如何从Python中解析的JSON中的键:值对中抓取值
EN

Stack Overflow用户
提问于 2013-03-13 09:21:07
回答 1查看 13.1K关注 0票数 0

我正在尝试从JSON文件中提取数据。这是我的代码。

代码语言:javascript
复制
import json
json_file = open('test.json')                                                                                                                          
data = json.load(json_file)
json_file.close()

此时,我可以使用打印数据打印文件,文件似乎已被正确读入。

现在我想从一个key:value对中获取一个值,这个值对嵌套在一个字典中,这个列表嵌套在一个字典中(天哪!)。我最初的策略是创建一个字典,并将字典嵌套在其中的列表中,然后提取所需的键:值对。

代码语言:javascript
复制
dict = {}
dict = json_file.get('dataObjects', None)
dict[0]

当我尝试查看dict的内容时,我发现只有一个元素。整个字典似乎都是以列表的形式读取的。我尝试了几种不同的方法,但最终还是以列表形式读取字典。我喜欢抓取嵌套的字典,并使用另一个.get来抓取我需要的值。这是我正在使用的JSON的一个示例。具体地说,我正在尝试从dataObjects部分提取标识符和描述值。

代码语言:javascript
复制
{
  "identifier": 213726,
  "scientificName": "Carcharodon carcharias (Linnaeus, 1758)",
  "richness_score": 89.6095,
  "synonyms": [

  ],

  "taxonConcepts": [
    {
      "identifier": 20728481,
      "scientificName": "Carcharodon carcharias (Linnaeus, 1758)",
      "nameAccordingTo": "WORMS Species Information (Marine Species)",
      "canonicalForm": "Carcharodon carcharias",
      "sourceIdentfier": "105838"
    },
    {
      "identifier": 24922984,
      "scientificName": "Carcharodon carcharias",
      "nameAccordingTo": "IUCN Red List (Species Assessed for Global Conservation)",
      "canonicalForm": "Carcharodon carcharias",
      "sourceIdentfier": "IUCN-3855"
    },
  ],
  "dataObjects": [
    {
      "identifier": "5e1882d822ec530069d6d29e28944369",
      "dataObjectVersionID": 5671572,
      "dataType": "http://purl.org/dc/dcmitype/Text",
      "dataSubtype": "",
      "vettedStatus": "Trusted",
      "dataRating": 3.0,
      "subject": "http://rs.tdwg.org/ontology/voc/SPMInfoItems#TaxonBiology",
      "mimeType": "text/html",
      "title": "Biology",
      "language": "en",
      "license": "http://creativecommons.org/licenses/by-nc-sa/3.0/",
      "rights": "Copyright Wildscreen 2003-2008",
      "rightsHolder": "Wildscreen",
      "audience": [
        "General public"
      ],
      "source": "http://www.arkive.org/great-white-shark/carcharodon-carcharias/",
      "description": "Despite its worldwide notoriety, very little is known about the natural ecology and behaviour of this predator. These sharks are usually solitary or occur in pairs, although it is apparently a social animal that can also be found in small aggregations of 10 or more, particularly around a carcass (3) (6). Females are ovoviviparous; the pups hatch from eggs retained within their mother's body, and she then gives birth to live young (10). Great white sharks are particularly slow-growing, late maturing and long-lived, with a small litter size and low reproductive capacity (8). Females do not reproduce until they reach about 4.5 to 5 metres in length, and litter sizes range from two to ten pups (8). The length of gestation is not known but estimated at between 12 and 18 months, and it is likely that these sharks only reproduce every two or three years (8) (11). After birth, there is no maternal care, and despite their large size, survival of young is thought to be low (8). Great whites are at the top of the marine food chain, and these sharks are skilled predators. They feed predominately on fish but will also consume turtles, molluscs, and crustaceans, and are active hunters of small cetaceans such as dolphins and porpoises, and of other marine mammals such as seals and sea lions (12). Using their acute senses of smell, sound location and electroreception, weak and injured prey can be detected from a great distance (7). Efficient swimmers, sharks have a quick turn of speed and will attack rapidly before backing off whilst the prey becomes weakened; they are sometimes seen leaping clear of the water (6). Great whites, unlike most other fish, are able to maintain their body temperature higher than that of the surrounding water using a heat exchange system in their blood vessels (11).",
      "agents": [
        {
          "full_name": "ARKive",
          "homepage": "http://www.arkive.org/",
          "role": "provider"
        }
      ],
    }
  ]
}
EN

回答 1

Stack Overflow用户

发布于 2013-03-23 05:25:34

json无法读取您提供的源代码,必须删除其中的两个逗号(倒数第四行的逗号和dataObjects上方的两行逗号。只有在此之后,json模块才能无错误地解析:

代码语言:javascript
复制
import json

json_file = open('test.json')
data = json.load(json_file)
do = data['dataObjects'][0]
print do['identifier']
print do['description']
json_file.close()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15375365

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档