【debug】Python 3解决报错:‘NoneType‘ object has no attribute ‘decode‘

names, plot_dicts = [], []
for repo_dict in repo_dics:
    names.append(repo_dict['name'])
    plot_dict = {
        'value':repo_dict['stargazers_count'],
        'label':repo_dict['description']
    }

用Pygal绘制条形图时报错:

  File "D:\Program Files (x86)\PycharmProject\Study\venv\lib\site-packages\pygal\graph\bar.py", line 116, in bar
    metadata)
  File "D:\Program Files (x86)\PycharmProject\Study\venv\lib\site-packages\pygal\util.py", line 233, in decorate
    metadata['label'])
  File "D:\Program Files (x86)\PycharmProject\Study\venv\lib\site-packages\pygal\_compat.py", line 61, in to_unicode
    return string.decode('utf-8')
***AttributeError: 'NoneType' object has no attribute 'decode'***

错误原因:

'label':repo_dict['description']

有一个repo_dict[‘description’]为空。
如何发现这个错误的?
根据控制台打印,打开报错代码:

    if 'label' in metadata:
        svg.node(node, 'desc', class_='label').text = to_unicode(
            metadata['label'])
    return node
def to_unicode(string):
    """Force string to be a string in python 3 or a unicode in python 2"""
    if not isinstance(string, coerce):
        return string.decode('utf-8')
    return string

发现对‘label’的值有一个解码,如果value为空,那么肯定无法解码,所以报:NoneType’ object has no attribute 'decode’的错误。
解决方法:

        'label':str(repo_dict['description'])

一起学习,一起进步,加油!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值