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")