Python 3.x 属性错误:';非类型';对象没有属性';解码';

Python 3.x 属性错误:';非类型';对象没有属性';解码';,python-3.x,pygal,Python 3.x,Pygal,*如果我运行此操作,将出现错误 names, plot_dicts = [], [] for repo_dict in repo_dicts: names.append(repo_dict['name']) plot_dict = { 'value': repo_dict['stargazers_count'], 'label': repo_dict['description'], 'xlink': repo_dict['owner

*如果我运行此操作,将出现错误

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

my_style = LS('#333366', base_style=LCS)
chart = pygal.Bar(style=my_style, x_label_rotation=45, show_legend=False)
chart.title = 'Most-Stared Python Project On Github'
chart.x_labels = names
chart.add('', plot_dicts)

chart.render_to_file('new_repos.svg')
*我不知道为什么,有人能帮我解决这个问题吗

names, plot_dicts = [], []
for repo_dict in repo_dicts:
    names.append(repo_dict['name'])
    plot_dict = {
        'value': repo_dict['stargazers_count'],
        #'label': repo_dict['description'],
        'xlink': repo_dict['owner']['html_url'],
        }
    plot_dicts.append(plot_dict)

像上面一样尝试str(),您以前获得的数据似乎没有明确说明“description”存储的值的类型

可能是API与描述不匹配,因此您可以使用
ifelse
来解决此问题。就这样

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

如果web API返回值
null
,则表示没有结果,因此可以使用If语句来解决。也许在这里,物品
shadowsocks
没有返回任何东西,所以可能是出了问题

错误为文本会更好。仅代码的答案不被认为是好答案。请通过提供更多的上下文和解释来改进您的答案。
description = repo_dict['description']
if not description:
    description = 'No description provided'

plot_dict = {
    'value': repo_dict['stargazers_count'],
    'label': description,
    'xlink': repo_dict['html_url'],
}
plot_dicts.append(plot_dict)`
description = repo_dict['description']
if not description:
    description = 'No description provided'

plot_dict = {
    'value': repo_dict['stargazers_count'],
    'label': description,
    'xlink': repo_dict['html_url'],
}
plot_dicts.append(plot_dict)`
from requests import get
from pygal import Bar, style, Config

url = "https://api.github.com/search/repositories?q=language:python&sort=stars"

# получение данных по API GitHub
get_data = get(url)
response_dict = get_data.json()
repositories = response_dict['items']

# получение данных для построения визуализации
names, stars_labels = [], []
for repository in repositories:
    names.append(repository['name'])
    if repository['description']:
        stars_labels.append({'value': repository['stargazers_count'],
                             'label': repository['description'],
                             'xlink': repository['html_url']})
    else:
        stars_labels.append({'value': repository['stargazers_count'],
                             'label': "нет описания",
                             'xlink': repository['html_url']})

# задание стилей для диаграммы
my_config = Config()
my_config.x_label_rotation = 45
my_config.show_legend = False
my_config.truncate_label = 15  # сокращение длинных названий проектов
my_config.show_y_guides = False  # скроем горизонтальные линии
my_config.width = 1300
my_style = style.LightenStyle('#333366', base_style=style.LightColorizedStyle)
my_style.label_font_size = 16
my_style.major_label_font_size = 20

# построение визуализации
chart = Bar(my_config, style=my_style)
chart.title = "Наиболее популярные проекты Python на GitHub"
chart.x_labels = names
chart.add('', stars_labels)
chart.render_to_file("python_projects_with_high_stars.svg")