执行以下脚本时出现以下错误:
Error Type: <type 'exceptions.TypeError'>
Error Contents: 'NoneType' object is not iterable
Traceback (most recent call last):
File "addon.py", line 75, in <module>
plugin.run()
File "xbmcswift2/plugin.py", line 332, in run
items = self._dispatch(self.request.path)
File "/plugin.py", line 306, in _dispatch
listitems = view_func(**items)
File "/addon.py", line 42, in all_episodes
items = thisiscriminal.compile_playable_podcast(playable_podcast)
File "/lib/thisiscriminal.py", line 121, in compile_playable_podcast
for podcast in playable_podcast:
TypeError: 'NoneType' object is not iterable
问题代码如下,如有任何建议,我将不胜感激,因为我不知道我做错了什么:
def get_playable_podcast(soup):
"""
@param: parsed html page
"""
r = urllib.urlopen('https://thisiscriminal.com/wp-json/criminal/v1/episodes?posts=10000&page=1')
data = json.loads(r.read().decode('utf-8'))
for post in data['posts']:
print post['title']
print post['episodeNumber']
print post['audioSource']
print post['image']['medium']
subjects = []
item = {
'title': post['title'],
'audioSource': post['audioSource'],
'episodeNumber': post['episodeNumber'],
'medium': post['image']['medium']
}
subjects.append(item)
print subjects
def compile_playable_podcast(playable_podcast):
"""
@para: list containing dict of key/values pairs for playable podcasts
"""
items = []
for podcast in playable_podcast:
items.append({
post['title']: podcast['title']['episodeNumber'],
post['audioSource']: podcast['audioSource'],
post['image']['medium']: podcast['medium'],
'is_playable': True,})
return items
我猜你的剧本跟下面的一样
问题是} -然后传递到
get_playable_podcast
没有return语句。在这种情况下,Python defaults to returning ^{compile_playable_podcast
。因为None
是不可iterable的,所以compile_playable_podcast
正确地引发了TypeError
。你知道吗现在,解决方案当然是返回您在
get_playable_podcast
中构建的播客列表,如下所示除此之外,还需要仔细检查脚本中是否有未使用的参数和/或重复的代码。你知道吗
相关问题 更多 >
编程相关推荐