我从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)
事情是,如果有几个项目具有相同的类别,那么它会多次打印它们。
例如
戏剧犯罪剧情戏剧喜剧动作喜剧
我希望只打印一次具有相同类别的项目:
剧情,犯罪,喜剧,动作
我该怎么做?
答案 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)