Python:在列表中嵌入的dict中搜索

时间:2014-11-03 01:07:22

标签: python list dictionary tumblr

抱歉非常糟糕的英语。 你好。我如何从这个列表中获取网址?

[{u'highlighted': [], u'image_permalink': u'http://bluebeetlezar.tumblr.com/image/101630187766', u'reblog_key': u'RWjDEE41', u'format': u'html', u'timestamp': 1414973540, u'note_count': 0, u'tags': [u'train', u'railway', u'station', u'silent', u'morning'], u'photos': [{u'caption': u'', u'original_size': {u'url': u'http://38.media.tumblr.com/aa3018b3d8b147dc49e4b407b62f2b94/tumblr_nefsklMDSb1s385n2o1_1280.jpg', u'width': 640, u'height': 640}, u'alt_sizes': [{u'url': u'http://38.media.tumblr.com/aa3018b3d8b147dc49e4b407b62f2b94/tumblr_nefsklMDSb1s385n2o1_1280.jpg', u'width': 640, u'height': 640}, {u'url': u'http://33.media.tumblr.com/aa3018b3d8b147dc49e4b407b62f2b94/tumblr_nefsklMDSb1s385n2o1_500.jpg', u'width': 500, u'height': 500}, {u'url': u'http://38.media.tumblr.com/aa3018b3d8b147dc49e4b407b62f2b94/tumblr_nefsklMDSb1s385n2o1_400.jpg', u'width': 400, u'height': 400}, {u'url': u'http://38.media.tumblr.com/aa3018b3d8b147dc49e4b407b62f2b94/tumblr_nefsklMDSb1s385n2o1_250.jpg', u'width': 250, u'height': 250}, {u'url': u'http://33.media.tumblr.com/aa3018b3d8b147dc49e4b407b62f2b94/tumblr_nefsklMDSb1s385n2o1_100.jpg', u'width': 100, u'height': 100}, {u'url': u'http://33.media.tumblr.com/aa3018b3d8b147dc49e4b407b62f2b94/tumblr_nefsklMDSb1s385n2o1_75sq.jpg', u'width': 75, u'height': 75}]}], u'id': 101630187766, u'post_url': u'http://bluebeetlezar.tumblr.com/post/101630187766/stasiun-gondangdia-in-the-morniiiiinnngg', u'caption': u'<p>Stasiun Gondangdia in the morniiiiinnngg :) #railway #station #train #morning #silent</p>', u'state': u'published', u'short_url': u'http://tmblr.co/Z2EiHt1UfePZs', u'date': u'2014-11-03 00:12:20 GMT', u'link_url': u'http://instagram.com/p/u6sFevMNJ2/', u'type': u'photo', u'slug': u'stasiun-gondangdia-in-the-morniiiiinnngg', u'blog_name': u'bluebeetlezar'}]

我想使用.get,但这个数据列表。我怎么能提取url anoter方式?或列表 - &gt;字典? (dict()不起作用或我很蠢)。

2 个答案:

答案 0 :(得分:1)

'your_list [0] ['image_permalink']# - &gt; http://bluebeetlezar.tumblr.com/image/101630187766

your_list[0]['photos'][0]['original_size']["url"] # -> http://38.media.tumblr.com/aa3018b3d8b147dc49e4b407b62f2b94/tumblr_nefsklMDSb1s385n2o1_1280.jpg

列表中只有一个元素是dict,使用your_list[0]来访问它然后使用键来获取你需要的任何url。

In [27]: your_list[0]['photos'][0]['original_size']['url']
Out[27]: 'http://38.media.tumblr.com/aa3018b3d8b147dc49e4b407b62f2b94/tumblr_nefsklMDSb1s385n2o1_1280.jpg'

答案 1 :(得分:1)

以下是您可以尝试的一些事项:

L = [{u'highlighted': [], u'image_permalink': u'http://bluebeetlezar.tumblr.com/image/101630187766', u'reblog_key': u'RWjDEE41', u'format': u'html', u'timestamp': 1414973540, u'note_count': 0, u'tags': [u'train', u'railway', u'station', u'silent', u'morning'], u'photos': [{u'caption': u'', u'original_size': {u'url': u'http://38.media.tumblr.com/aa3018b3d8b147dc49e4b407b62f2b94/tumblr_nefsklMDSb1s385n2o1_1280.jpg', u'width': 640, u'height': 640}, u'alt_sizes': [{u'url': u'http://38.media.tumblr.com/aa3018b3d8b147dc49e4b407b62f2b94/tumblr_nefsklMDSb1s385n2o1_1280.jpg', u'width': 640, u'height': 640}, {u'url': u'http://33.media.tumblr.com/aa3018b3d8b147dc49e4b407b62f2b94/tumblr_nefsklMDSb1s385n2o1_500.jpg', u'width': 500, u'height': 500}, {u'url': u'http://38.media.tumblr.com/aa3018b3d8b147dc49e4b407b62f2b94/tumblr_nefsklMDSb1s385n2o1_400.jpg', u'width': 400, u'height': 400}, {u'url': u'http://38.media.tumblr.com/aa3018b3d8b147dc49e4b407b62f2b94/tumblr_nefsklMDSb1s385n2o1_250.jpg', u'width': 250, u'height': 250}, {u'url': u'http://33.media.tumblr.com/aa3018b3d8b147dc49e4b407b62f2b94/tumblr_nefsklMDSb1s385n2o1_100.jpg', u'width': 100, u'height': 100}, {u'url': u'http://33.media.tumblr.com/aa3018b3d8b147dc49e4b407b62f2b94/tumblr_nefsklMDSb1s385n2o1_75sq.jpg', u'width': 75, u'height': 75}]}], u'id': 101630187766, u'post_url': u'http://bluebeetlezar.tumblr.com/post/101630187766/stasiun-gondangdia-in-the-morniiiiinnngg', u'caption': u'<p>Stasiun Gondangdia in the morniiiiinnngg :) #railway #station #train #morning #silent</p>', u'state': u'published', u'short_url': u'http://tmblr.co/Z2EiHt1UfePZs', u'date': u'2014-11-03 00:12:20 GMT', u'link_url': u'http://instagram.com/p/u6sFevMNJ2/', u'type': u'photo', u'slug': u'stasiun-gondangdia-in-the-morniiiiinnngg', u'blog_name': u'bluebeetlezar'}]

def printUrls(L):
    whitelist = set(["u'image_permalink", "url"])
    for d in L:
        if isinstance(d, dict):
            for k in d:
                if k in whitelist:
                    print(d[k])
                    continue

        if isinstance(d, list):
            printUrls(d)

或者:

def printUrls(L):
    for d in L:
        if isinstance(d, dict):
            for _k,v in d.items():
                if v.startswith('http'):
                    print(v)
                    continue

        if isinstance(d, list):
            printUrls(d)