作者busystudent (busystudent)
看板Python
标题[问题] 在字典格式中如何切出指定的值 part2
时间Sat Nov 19 17:13:44 2016
各位好 想再次询问关於字典切字的问题,想要询问「如何有效率的在一份字典中切出指定的所有值」,例如下方的格式中,想要指定share_link,切出里面的值
j={u'items': [{u'annotations': [],u'share_link': u'a'},
{u'annotations': [],u'share_link': u'b'},
{u'annotations': [],u'share_link': u'c'},
]}
我最一开始的尝试方法为用呼叫的方式,例如print "Value: %s" % j.get('items')[0]['share_link']
确实是可以叫出里面的所有值,但是效率非常得差,假若’share_link’出现20次,我就要把括号 [0] 里面的值从0写到19,共重复20次,想请问有什麽好的解决方法,提升效率。
例如,如下面的虚拟码,改成指定share_link,只要是share_link就把里面的值抓出来
虚拟码:
b = j.findall(‘share_link’)
print every share_link value
--
Sent from my Windows
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 59.120.251.134
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1479546826.A.1E8.html
※ 编辑: busystudent (59.120.251.134), 11/19/2016 17:55:20
1F:→ uranusjr: 用回圈啊 11/19 18:26
2F:推 koshi0413: For 11/19 18:42
3F:推 mantour: 你要先说你的j是怎麽来的 j里面除了items还会有其他 11/20 13:12
4F:→ mantour: key-value pairs吗? 11/20 13:13
5F:→ mantour: items的value一定是list吗 list里面的元素都是dict吗 11/20 13:14
6F:→ mantour: 每个dict里面都只有annotation和shared_link两个key吗 11/20 13:15
7F:→ mantour: 还是会有其他组合? 然後你的j为什麽要长这样 11/20 13:15
8F:→ mantour: 以上都搞清楚才会知道要怎麽写才符合你的需求 11/20 13:16
9F:推 mantour: item里面的dict如果没有share_link这个key就跳过吗 11/20 13:19
10F:→ s860134: [i.get('share_link') for i in j.get('items')\ 11/20 13:23
11F:→ s860134: if 'share_link' in i] 11/20 13:24