从对API的调用结果(使用urllib2)中,我在Python中有一个JSON对象,如下所示:

results = urllib2.urlopen(req).read()

json1 = json.loads(results)

这将生成一个包含以下内容的JSON对象(由于大小而被截断):

"http://d.opencalais.com/dochash-1/895ba8ff-4c32-3ae1-9615-9a9a9a1bcb39/cat/1":{

"_typeGroup":"topics",

"category":"http://d.opencalais.com/cat/Calais/Entertainment_Culture",

"classifierName":"Calais",

"categoryName":"Entertainment_Culture",

"score":1

},

"http://d.opencalais.com/genericHasher-1/b6a2d07d-133b-35ad-85e2-54d524e750cf":{

"_typeGroup":"entities",

"_type":"TVShow",

"name":"Hard Knocks",

"_typeReference":"http://s.opencalais.com/1/type/em/e/TVShow",

"instances":[

{

"detection":"[ New York Jets during the summer of 2010 on HBO's ]Hard Knocks[.\n]",

"prefix":" New York Jets during the summer of 2010 on HBO's ",

"exact":"Hard Knocks",

"suffix":".\n",

"offset":135,

"length":11

}

],

"relevance":0.5

},

"http://d.opencalais.com/genericHasher-1/802a1ebb-7fac-354f-b02f-6ef8442950d3":{

"_typeGroup":"entities",

"_type":"Organization",

"name":"New York Jets",

"organizationtype":"sports",

"nationality":"American",

"_typeReference":"http://s.opencalais.com/1/type/em/e/Organization",

"instances":[

{

"detection":"[ Tebow caught a few training camp glimpses of the ]New York Jets[ during the summer of 2010 on HBO's Hard]",

"prefix":" Tebow caught a few training camp glimpses of the ",

"exact":"New York Jets",

"suffix":" during the summer of 2010 on HBO's Hard",

"offset":86,

"length":13

}

],

"relevance":0.5

}

从此JSON中,仅当“ typeGroup” ==“ entities”时,我才想提取“ _type”和“ name”。

例如,对于上述JSON对象,输出应如下所示:

TVShow: Hard Knocks

Organization: New York Jets.

有人可以帮忙在Python中做到这一点吗?

[更新1]

根据Jatin的回答,我尝试了以下操作:

for key,value in json1.items():

if value["_typeGroup"] == "entities":

print value['_type'], value['name']

但是,这会导致错误KeyError:'_typeGroup'

我试图查看键和值的打印方式,如下所示:

for key,value in json1.items():

print key,value

这导致以下输出(仅显示一个键,值对):

http://d.opencalais.com/genericHasher-1/802a1ebb-7fac-354f-b02f-6ef8442950d3 {u'_typeReference': u'http://s.opencalais.com/1/type/em/e/Organization', u'_type': u'Organization', u'name': u'New York Jets', u'_typeGroup': u'entities', u'instances': [{u'suffix': u" during the summer of 2010 on HBO's Hard", u'prefix': u' Tebow caught a few training camp glimpses of the ', u'detection': u"[ Tebow caught a few training camp glimpses of the ]New York Jets[ during the summer of 2010 on HBO's Hard]", u'length': 13, u'offset': 86, u'exact': u'New York Jets'}], u'relevance': 0.5, u'nationality': u'American', u'organizationtype': u'sports'}

它似乎是嵌套的JSON。所以我尝试了以下方法来访问内部键值对,如下所示:

for key,value in json1.items():

val1 = value

for key,value in val1.items():

if value["_typeGroup"] == "entities":

print value['_type'], value['name']

但是,它引发以下错误:

TypeError: string indices must be integers

解决方案

我认为您会收到该错误,因为JSON中的某些值没有_typeGroup。试试这个:

for key,value in x.items():

if value.get("_typeGroup", "") == "entities":

print value['_type'], value['name']

python提取json中的值,在Python中从JSON提取特定值相关推荐

  1. 父进程中getpid()值与子进程中getppid()值不相同的问题及解释

    父进程中getpid()值与子进程中getppid()值不相同的问题及解释 使用fork()创建一个新的子进程,并调用getpid()与getppid()查看父子进程之间的pid的关系.示例代码如下: ...

  2. 邮件合并的逆向应用,从多个Word文档中取值到Excel中

    按位置和表格取值到Excel: 将所有参考位置的目标提取出来,导出到Excel工作表中.例如"考试成绩:98.",要取出成绩其位置就是"考试成绩:"之后.句号之 ...

  3. 从多个Word文件中取值到Excel中,整理文件的神器,Word精灵V7.3

    Word精灵V7.3版,包含107个功能 工具网址:http://excelbbx.net/Word.htm 演示一个功能: 从多个Word文件中提取指定的值到Excel中,也可以理解为把多个Word ...

  4. oracle数据库中索值,Oracle数据库中的索引详解

    Oracle数据库中的索引详解以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 一 ROWID的概念 存储了row在数据文 ...

  5. php代码正确 插不进表,在表中插入值在PHP中不工作,使用

    我正试图在表中插入值,我不知道到底发生了什么,它不起作用,我也看不到任何错误. 我不知道我在哪里犯了错误,有人能帮我吗? 这是我的代码: 数据库.php $host = 'localhost'; $d ...

  6. 在一个函数中把值放到Cookies中比较是否相等

    function setData()          {        var nlen1 = GetCookie("nlen1");  // 取旧值 //野狼 utf-8    ...

  7. pg中多值列_PostgreSQL中列的statistics属性

    PostgreSQL中列的statistics属性 这个属性大概来说是用来控制分析时对列的分析的详细程度,会影响到执行计划的选择,具体的描述可以看文档.pgsql默认所有列的statistics都是1 ...

  8. python将变量i的值增加1_Python中变量自增、i+=x与i=i+x、is与==

    这篇博客可能比较low bee,但是对于一个掌握了其他语言,刚刚学习Python的人来说,也许会有一点点的帮助. 在Cpp中,我们总是讨论前缀自增和后缀自增的效率问题: ++i 是i=i+1,表达式的 ...

  9. python接收键盘输入的值_Python代码中如何读取键盘录入的值

    读取键盘输入 Python提供了两个内置函数从标准输入读入一行文本,默认的标准输入是键盘.如下: raw_input input raw_input函数 raw_input([prompt]) 函数从 ...

最新文章

  1. R语言Logistic分布函数Logistic Distribution(dlogis, plogis, qlogis rlogis )实战
  2. pandas根据数据类型筛选数据
  3. docker开源系统监控软件Nagios
  4. dhcp服务器由谁维护,DHCP服务器管理维护的心得
  5. 170316.道格拉斯-普克算法
  6. oracle po:默认申请分组,PR自动创建PO采购订单:强制按照PR行进行分组
  7. leetcode 721. 账户合并(并查集)
  8. ffmpeg 同宽度 画中画_FFmpeg中overlay滤镜用法-水印及画中画
  9. 新手如何学习C语言/C++,教你一年时间是拿到年薪50万
  10. 【深度】从朴素贝叶斯到维特比算法:详解隐马尔科夫模型
  11. 串口中断和定时器中断_启士 | 蓝桥杯单片机教程12 中断与定时器 (上)
  12. ISE中UCF约束文件的编写
  13. sbt启动机制、配置优化及与Intellij IDEA的集成
  14. 彪悍开源的分析数据库-ClickHouse
  15. antdPro创建的项目网络请求统一处理
  16. Free Code Camp 练习总结(五) ——Introduction to the ES6 Challenges ES6基本用法和基础知识
  17. 如何让键盘支持自动输入
  18. 第一次单元测验参考答案详解 mooc程序设计入门——翁凯
  19. Allegro-PCB封装更新
  20. 第三章 SLO工程案例学习

热门文章

  1. DOM ------ 仿淘宝关闭二维码
  2. 计算机素养以应用工具为核心,计算机素养的培养.doc
  3. Makefile新手?千万别错过了《驾驭Makefile》
  4. 写英文IEEE论文的技巧
  5. 谷歌浏览器按F12调试js代码的时候找不到代码在哪
  6. javaScript:实现倒计时定时器setInterval的开始计时、暂停计时、停止计时效果
  7. 正大期货新闻:油价今年有望“长期”处在100美元上方
  8. 掌握模拟电路设计需要阅读的几本参考书!
  9. element若依 菜单点击改变背景色
  10. 通过设置路由器DMZ主机ip,却还是没法通过外网访问