Python for循环,打印相同的项目

时间:2015-09-21 12:32:37

标签: python for-loop

我从url解析json数据,然后用for循环打印项解析我想要的内容。

import urllib.request
import json
response = urllib.request.urlopen('http://jsonurl.com')
content = response.read()
jdata = json.loads(content.decode('utf8'))
jdata2 = jdata['available_channels']
for values in jdata2.values():
    live = values['live']
    category = values['category_name']
    if "1" in live:
      print(category)

事情是,如果有几个项目具有相同的类别,那么它会多次打印它们。

例如

  

戏剧犯罪剧情戏剧喜剧动作喜剧

我希望只打印一次具有相同类别的项目:

  

剧情,犯罪,喜剧,动作

我该怎么做?

2 个答案:

答案 0 :(得分:2)

您可以使用一组来跟踪已打印的元素。示例 -

jdata2 = jdata['available_channels']
seen_set = set()
for values in jdata2.values():
    live = values['live']
    category = values['category_name']
    if "1" in live and category not in seen_set:
      print(category)
      seen_set.add(category)

答案 1 :(得分:0)

您可以将您感兴趣的类别存储到set中,这将删除重复项。然后打印出来:

wanted_categories = {v['category_name'] for v in jdata2.values() if "1" in v['live']}
print(wanted_categories)