python提取json中的值,在Python中从JSON提取特定值
从对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提取特定值相关推荐
- 父进程中getpid()值与子进程中getppid()值不相同的问题及解释
父进程中getpid()值与子进程中getppid()值不相同的问题及解释 使用fork()创建一个新的子进程,并调用getpid()与getppid()查看父子进程之间的pid的关系.示例代码如下: ...
- 邮件合并的逆向应用,从多个Word文档中取值到Excel中
按位置和表格取值到Excel: 将所有参考位置的目标提取出来,导出到Excel工作表中.例如"考试成绩:98.",要取出成绩其位置就是"考试成绩:"之后.句号之 ...
- 从多个Word文件中取值到Excel中,整理文件的神器,Word精灵V7.3
Word精灵V7.3版,包含107个功能 工具网址:http://excelbbx.net/Word.htm 演示一个功能: 从多个Word文件中提取指定的值到Excel中,也可以理解为把多个Word ...
- oracle数据库中索值,Oracle数据库中的索引详解
Oracle数据库中的索引详解以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 一 ROWID的概念 存储了row在数据文 ...
- php代码正确 插不进表,在表中插入值在PHP中不工作,使用
我正试图在表中插入值,我不知道到底发生了什么,它不起作用,我也看不到任何错误. 我不知道我在哪里犯了错误,有人能帮我吗? 这是我的代码: 数据库.php $host = 'localhost'; $d ...
- 在一个函数中把值放到Cookies中比较是否相等
function setData() { var nlen1 = GetCookie("nlen1"); // 取旧值 //野狼 utf-8 ...
- pg中多值列_PostgreSQL中列的statistics属性
PostgreSQL中列的statistics属性 这个属性大概来说是用来控制分析时对列的分析的详细程度,会影响到执行计划的选择,具体的描述可以看文档.pgsql默认所有列的statistics都是1 ...
- python将变量i的值增加1_Python中变量自增、i+=x与i=i+x、is与==
这篇博客可能比较low bee,但是对于一个掌握了其他语言,刚刚学习Python的人来说,也许会有一点点的帮助. 在Cpp中,我们总是讨论前缀自增和后缀自增的效率问题: ++i 是i=i+1,表达式的 ...
- python接收键盘输入的值_Python代码中如何读取键盘录入的值
读取键盘输入 Python提供了两个内置函数从标准输入读入一行文本,默认的标准输入是键盘.如下: raw_input input raw_input函数 raw_input([prompt]) 函数从 ...
最新文章
- R语言Logistic分布函数Logistic Distribution(dlogis, plogis, qlogis rlogis )实战
- pandas根据数据类型筛选数据
- docker开源系统监控软件Nagios
- dhcp服务器由谁维护,DHCP服务器管理维护的心得
- 170316.道格拉斯-普克算法
- oracle po:默认申请分组,PR自动创建PO采购订单:强制按照PR行进行分组
- leetcode 721. 账户合并(并查集)
- ffmpeg 同宽度 画中画_FFmpeg中overlay滤镜用法-水印及画中画
- 新手如何学习C语言/C++,教你一年时间是拿到年薪50万
- 【深度】从朴素贝叶斯到维特比算法:详解隐马尔科夫模型
- 串口中断和定时器中断_启士 | 蓝桥杯单片机教程12 中断与定时器 (上)
- ISE中UCF约束文件的编写
- sbt启动机制、配置优化及与Intellij IDEA的集成
- 彪悍开源的分析数据库-ClickHouse
- antdPro创建的项目网络请求统一处理
- Free Code Camp 练习总结(五) ——Introduction to the ES6 Challenges ES6基本用法和基础知识
- 如何让键盘支持自动输入
- 第一次单元测验参考答案详解 mooc程序设计入门——翁凯
- Allegro-PCB封装更新
- 第三章 SLO工程案例学习