Python - 正确的解析方法

时间:2012-02-03 23:05:43

标签: python parsing

我目前正在开发一个可以使用Youtubes API的脚本。我还在学习如何使用Python正确解析,但对于像这样的方法采取什么方法有点遗失。

我有这个字符串:

[{'term': u'Video Blogging', 'scheme': None, 'label': None}, {'term': u'blogging', 'scheme': None, 'label': None}, {'term': u'stuff', 'scheme': None, 'label': None}, {'term': u'Videos', 'scheme': None, 'label': None}]

我需要接受它,然后把它转到这个:

Video Blogging, blogging, stuff, Videos

解决此问题的最佳方法是什么?感谢任何帮助,谢谢!

3 个答案:

答案 0 :(得分:4)

>>> l = [{'term': u'Video Blogging', 'scheme': None, 'label': None}, {'term': u'blogging', 'scheme': None, 'label': None}, {'term': u'stuff', 'scheme': None, 'label': None}, {'term': u'Videos', 'scheme': None, 'label': None}]
>>> [a.get('term') for a in l]
[u'Video Blogging', u'blogging', u'stuff', u'Videos']

如果您想将这些项目作为逗号分隔的字符串,请使用:

>>> ', '.join(a.get('term') for a in l)
u'Video Blogging, blogging, stuff, Videos'

我使用a.get('term')代替a['term']来避免KeyError项没有term密钥。

答案 1 :(得分:1)

它应该是这样的:

>>> l = [{'term': u'Video Blogging', 'scheme': None, 'label': None}, {'term': u'blogging', 'scheme': None, 'label': None}, {'term': u'stuff', 'scheme': None, 'label': None}, {'term': u'Videos', 'scheme': None, 'label': None}]
>>> ', '.join([d['term'] for d in l])
u'Video Blogging, blogging, stuff, Videos'

答案 2 :(得分:0)

对于这种特定情况,您可以使用列表理解:

    list_of_stuff = [
            {'term': u'Video Blogging', 'scheme': None, 'label': None}, 
            {'term': u'blogging', 'scheme': None, 'label': None}, 
            {'term': u'stuff', 'scheme': None, 'label': None}, 
            {'term': u'Videos', 'scheme': None, 'label': None}
            ]     

    parsed_string = ', '.join([d['term'] for d in list_of_stuff])