Re: [問題] 在字典格式中如何切出指定的值 part2

作者: MOONY135 (談無慾)   2016-11-19 23:21:12
※ 引述《busystudent (busystudent)》之銘言:
: 各位好 想再次詢問關於字典切字的問題,想要詢問「如何有效率的在一份字典中切出指定的所有值」,例如下方的格式中,想要指定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
根據前面一個問題
麻煩看這篇
http://pydoing.blogspot.tw/2011/03/python-dictget.html
取到的是你的value 只是剛好你的value也是dict格式
j={u'items': [{u'annotations': []},
{u'share_link': u'http://www.google.com'},
{u'user_id': 8892484},
{u'share_link': u'https://www.yahoo.com.tw'}]}
itemValue= j['items']
for i in itemValue:
if ('share_link' in i):
print(i.values())
作者: s860134 (s860134)   2016-11-20 00:13:00
[i.get('share_link') for i in j.get('items') if 'share_link' in i ]

Links booklink

Contact Us: admin [ a t ] ucptt.com