{"id":153,"date":"2020-12-26T10:00:24","date_gmt":"2020-12-26T04:00:24","guid":{"rendered":"http:\/\/www.dreamflier.net\/wordpress\/?p=153"},"modified":"2020-12-26T10:00:24","modified_gmt":"2020-12-26T04:00:24","slug":"%e7%94%a8python%e7%88%acgithub%e4%b8%8a%e6%98%9f%e7%ba%a7%e6%8e%92%e5%90%8d%e5%89%8d%e5%88%97%e7%9a%84%e9%a1%b9%e7%9b%ae%e6%8a%a5%e9%94%99attributeerror-nonetype-object-has-no-attribute-decode","status":"publish","type":"post","link":"http:\/\/www.jichangqing.net\/wordpress\/?p=153","title":{"rendered":"\u7528python\u722cgithub\u4e0a\u661f\u7ea7\u6392\u540d\u524d\u5217\u7684\u9879\u76ee\u62a5\u9519AttributeError: &#8216;NoneType&#8217; object has no attribute &#8216;decode&#8217;"},"content":{"rendered":"<pre style=\"color: #000000;\"><code class=\"language-python hljs\" style=\"color: #383a42;\">\r\n\u4ee3\r\n\u7801\uff1a<\/code><\/pre>\n<ol class=\"hljs-ln\">\n<li>\n<div class=\"hljs-ln-numbers\"><\/div>\n<div class=\"hljs-ln-code\">\n<div class=\"hljs-ln-line\"><span class=\"hljs-keyword\" style=\"color: #a626a4;\">import<\/span> requests<\/div>\n<\/div>\n<\/li>\n<li>\n<div class=\"hljs-ln-numbers\"><\/div>\n<div class=\"hljs-ln-code\">\n<div class=\"hljs-ln-line\"><span class=\"hljs-keyword\" style=\"color: #a626a4;\">import<\/span> pygal<\/div>\n<\/div>\n<\/li>\n<li>\n<div class=\"hljs-ln-numbers\"><\/div>\n<div class=\"hljs-ln-code\">\n<div class=\"hljs-ln-line\"><span class=\"hljs-keyword\" style=\"color: #a626a4;\">from<\/span> pygal.style <span class=\"hljs-keyword\" style=\"color: #a626a4;\">import<\/span> LightenStyle <span class=\"hljs-keyword\" style=\"color: #a626a4;\">as<\/span> ls,LightColorizedStyle <span class=\"hljs-keyword\" style=\"color: #a626a4;\">as<\/span> lcs<\/div>\n<\/div>\n<\/li>\n<li>\n<div class=\"hljs-ln-numbers\"><\/div>\n<div class=\"hljs-ln-code\">\n<div class=\"hljs-ln-line\"><span class=\"hljs-comment\" style=\"font-style: italic; color: #a0a1a7;\">#\u6267\u884capi\u8c03\u7528\u5e76\u5b58\u50a8\u76f8\u5e94<\/span><\/div>\n<\/div>\n<\/li>\n<li>\n<div class=\"hljs-ln-numbers\"><\/div>\n<div class=\"hljs-ln-code\">\n<div class=\"hljs-ln-line\">url = <span class=\"hljs-string\" style=\"color: #50a14f;\">&#8216;https:\/\/api.github.com\/search\/repositories?q=language:python&amp;sort=stars&#8217;<\/span><\/div>\n<\/div>\n<\/li>\n<li>\n<div class=\"hljs-ln-numbers\"><\/div>\n<div class=\"hljs-ln-code\">\n<div class=\"hljs-ln-line\">r = requests.get(url)<\/div>\n<\/div>\n<\/li>\n<li>\n<div class=\"hljs-ln-numbers\"><\/div>\n<div class=\"hljs-ln-code\">\n<div class=\"hljs-ln-line\">print(r.status_code)<\/div>\n<\/div>\n<\/li>\n<li>\n<div class=\"hljs-ln-numbers\"><\/div>\n<div class=\"hljs-ln-code\">\n<div class=\"hljs-ln-line\"><span class=\"hljs-comment\" style=\"font-style: italic; color: #a0a1a7;\">#\u54cd\u5e94\u5b58\u50a8\u5728\u53d8\u91cf\u4e2d<\/span><\/div>\n<\/div>\n<\/li>\n<li>\n<div class=\"hljs-ln-numbers\"><\/div>\n<div class=\"hljs-ln-code\">\n<div class=\"hljs-ln-line\">response_dic = r.json()<\/div>\n<\/div>\n<\/li>\n<li>\n<div class=\"hljs-ln-numbers\"><\/div>\n<div class=\"hljs-ln-code\">\n<div class=\"hljs-ln-line\"><span class=\"hljs-comment\" style=\"font-style: italic; color: #a0a1a7;\">#print(response_dic.keys())<\/span><\/div>\n<\/div>\n<\/li>\n<li>\n<div class=\"hljs-ln-numbers\"><\/div>\n<div class=\"hljs-ln-code\">\n<div class=\"hljs-ln-line\">print(<span class=\"hljs-string\" style=\"color: #50a14f;\">&#8220;total:&#8221;<\/span>+str(response_dic[<span class=\"hljs-string\" style=\"color: #50a14f;\">&#8220;total_count&#8221;<\/span>]))<\/div>\n<\/div>\n<\/li>\n<li>\n<div class=\"hljs-ln-numbers\"><\/div>\n<div class=\"hljs-ln-code\"><\/div>\n<\/li>\n<li>\n<div class=\"hljs-ln-numbers\"><\/div>\n<div class=\"hljs-ln-code\">\n<div class=\"hljs-ln-line\"><span class=\"hljs-comment\" style=\"font-style: italic; color: #a0a1a7;\">#respon_dic :\u6240\u6709\u4ed3\u5e93\uff0c\u662f\u4e00\u4e2a\u5217\u8868\uff0c\u6709\u5f88\u591a\u5b57\u5178<\/span><\/div>\n<\/div>\n<\/li>\n<li>\n<div class=\"hljs-ln-numbers\"><\/div>\n<div class=\"hljs-ln-code\">\n<div class=\"hljs-ln-line\">respon_dics = response_dic[<span class=\"hljs-string\" style=\"color: #50a14f;\">&#8220;items&#8221;<\/span>]<\/div>\n<\/div>\n<\/li>\n<li>\n<div class=\"hljs-ln-numbers\"><\/div>\n<div class=\"hljs-ln-code\">\n<div class=\"hljs-ln-line\">print(<span class=\"hljs-string\" style=\"color: #50a14f;\">&#8220;dics:&#8221;<\/span>+str(len(respon_dics)))<\/div>\n<\/div>\n<\/li>\n<li>\n<div class=\"hljs-ln-numbers\"><\/div>\n<div class=\"hljs-ln-code\">\n<div class=\"hljs-ln-line\"><span class=\"hljs-string\" style=\"color: #50a14f;\">&#8220;&#8221;&#8221;\u627e\u51fa\u7b2c\u4e00\u4e2a\u5b57\u5178<\/span><\/div>\n<\/div>\n<\/li>\n<li>\n<div class=\"hljs-ln-numbers\"><\/div>\n<div class=\"hljs-ln-code\">\n<div class=\"hljs-ln-line\"><span class=\"hljs-string\" style=\"color: #50a14f;\">respon_dic = respon_dics[0]<\/span><\/div>\n<\/div>\n<\/li>\n<li>\n<div class=\"hljs-ln-numbers\"><\/div>\n<div class=\"hljs-ln-code\">\n<div class=\"hljs-ln-line\"><span class=\"hljs-string\" style=\"color: #50a14f;\">print(&#8220;\\nkeys:&#8221;+str(len(respon_dic)))<\/span><\/div>\n<\/div>\n<\/li>\n<li>\n<div class=\"hljs-ln-numbers\"><\/div>\n<div class=\"hljs-ln-code\">\n<div class=\"hljs-ln-line\"><span class=\"hljs-string\" style=\"color: #50a14f;\">for key in sorted(respon_dic.keys()):<\/span><\/div>\n<\/div>\n<\/li>\n<li>\n<div class=\"hljs-ln-numbers\"><\/div>\n<div class=\"hljs-ln-code\">\n<div class=\"hljs-ln-line\"><span class=\"hljs-string\" style=\"color: #50a14f;\"> print(key)&#8221;&#8221;&#8221;<\/span><\/div>\n<\/div>\n<\/li>\n<li>\n<div class=\"hljs-ln-numbers\"><\/div>\n<div class=\"hljs-ln-code\"><\/div>\n<\/li>\n<li>\n<div class=\"hljs-ln-numbers\"><\/div>\n<div class=\"hljs-ln-code\">\n<div class=\"hljs-ln-line\">names,plot_dicts = [],[]<\/div>\n<\/div>\n<\/li>\n<li>\n<div class=\"hljs-ln-numbers\"><\/div>\n<div class=\"hljs-ln-code\">\n<div class=\"hljs-ln-line\"><span class=\"hljs-keyword\" style=\"color: #a626a4;\">for<\/span> respon_dic <span class=\"hljs-keyword\" style=\"color: #a626a4;\">in<\/span> respon_dics:<\/div>\n<\/div>\n<\/li>\n<li>\n<div class=\"hljs-ln-numbers\"><\/div>\n<div class=\"hljs-ln-code\">\n<div class=\"hljs-ln-line\">names.append(respon_dic[<span class=\"hljs-string\" style=\"color: #50a14f;\">&#8216;name&#8217;<\/span>])<\/div>\n<\/div>\n<\/li>\n<li>\n<div class=\"hljs-ln-numbers\"><\/div>\n<div class=\"hljs-ln-code\">\n<div class=\"hljs-ln-line\">plot_dict = {<\/div>\n<\/div>\n<\/li>\n<li>\n<div class=\"hljs-ln-numbers\"><\/div>\n<div class=\"hljs-ln-code\">\n<div class=\"hljs-ln-line\"><span class=\"hljs-string\" style=\"color: #50a14f;\">&#8216;value&#8217;<\/span>:respon_dic[<span class=\"hljs-string\" style=\"color: #50a14f;\">&#8216;stargazers_count&#8217;<\/span>],<\/div>\n<\/div>\n<\/li>\n<li>\n<div class=\"hljs-ln-numbers\"><\/div>\n<div class=\"hljs-ln-code\">\n<div class=\"hljs-ln-line\"><span class=\"hljs-string\" style=\"color: #50a14f;\">&#8216;label&#8217;<\/span>:respon_dic[<span class=\"hljs-string\" style=\"color: #50a14f;\">&#8216;description&#8217;<\/span>]<\/div>\n<\/div>\n<\/li>\n<li>\n<div class=\"hljs-ln-numbers\"><\/div>\n<div class=\"hljs-ln-code\">\n<div class=\"hljs-ln-line\">}<\/div>\n<\/div>\n<\/li>\n<li>\n<div class=\"hljs-ln-numbers\"><\/div>\n<div class=\"hljs-ln-code\">\n<div class=\"hljs-ln-line\">plot_dicts.append(plot_dict)<\/div>\n<\/div>\n<\/li>\n<li>\n<div class=\"hljs-ln-numbers\"><\/div>\n<div class=\"hljs-ln-code\">\n<div class=\"hljs-ln-line\"><span class=\"hljs-comment\" style=\"font-style: italic; color: #a0a1a7;\">#plot_dicts.append(respon_dic[&#8216;stargazers_count&#8217;])<\/span><\/div>\n<\/div>\n<\/li>\n<li>\n<div class=\"hljs-ln-numbers\"><\/div>\n<div class=\"hljs-ln-code\">\n<div class=\"hljs-ln-line\"><span class=\"hljs-comment\" style=\"font-style: italic; color: #a0a1a7;\">#\u53ef\u89c6\u5316<\/span><\/div>\n<\/div>\n<\/li>\n<li>\n<div class=\"hljs-ln-numbers\"><\/div>\n<div class=\"hljs-ln-code\">\n<div class=\"hljs-ln-line\">my_style= ls(<span class=\"hljs-string\" style=\"color: #50a14f;\">&#8216;#333366&#8217;<\/span>,base_style = lcs)<\/div>\n<\/div>\n<\/li>\n<li>\n<div class=\"hljs-ln-numbers\"><\/div>\n<div class=\"hljs-ln-code\"><\/div>\n<\/li>\n<li>\n<div class=\"hljs-ln-numbers\"><\/div>\n<div class=\"hljs-ln-code\">\n<div class=\"hljs-ln-line\">my_config = pygal.Config()<\/div>\n<\/div>\n<\/li>\n<li>\n<div class=\"hljs-ln-numbers\"><\/div>\n<div class=\"hljs-ln-code\">\n<div class=\"hljs-ln-line\">my_config.x_label_rotation = <span class=\"hljs-number\" style=\"color: #986801;\">45<\/span><\/div>\n<\/div>\n<\/li>\n<li>\n<div class=\"hljs-ln-numbers\"><\/div>\n<div class=\"hljs-ln-code\">\n<div class=\"hljs-ln-line\">my_config.show_legend = <span class=\"hljs-literal\" style=\"color: #0184bb;\">False<\/span><\/div>\n<\/div>\n<\/li>\n<li>\n<div class=\"hljs-ln-numbers\"><\/div>\n<div class=\"hljs-ln-code\">\n<div class=\"hljs-ln-line\">my_config.title_font_size = <span class=\"hljs-number\" style=\"color: #986801;\">24<\/span><\/div>\n<\/div>\n<\/li>\n<li>\n<div class=\"hljs-ln-numbers\"><\/div>\n<div class=\"hljs-ln-code\">\n<div class=\"hljs-ln-line\">my_config.label_font_size = <span class=\"hljs-number\" style=\"color: #986801;\">14<\/span><\/div>\n<\/div>\n<\/li>\n<li>\n<div class=\"hljs-ln-numbers\"><\/div>\n<div class=\"hljs-ln-code\">\n<div class=\"hljs-ln-line\">my_config.major_label_font_size = <span class=\"hljs-number\" style=\"color: #986801;\">18<\/span><\/div>\n<\/div>\n<\/li>\n<li>\n<div class=\"hljs-ln-numbers\"><\/div>\n<div class=\"hljs-ln-code\">\n<div class=\"hljs-ln-line\">my_config.truncate_label = <span class=\"hljs-number\" style=\"color: #986801;\">15<\/span><\/div>\n<\/div>\n<\/li>\n<li>\n<div class=\"hljs-ln-numbers\"><\/div>\n<div class=\"hljs-ln-code\">\n<div class=\"hljs-ln-line\">my_config.show_y_guides = <span class=\"hljs-literal\" style=\"color: #0184bb;\">False<\/span><\/div>\n<\/div>\n<\/li>\n<li>\n<div class=\"hljs-ln-numbers\"><\/div>\n<div class=\"hljs-ln-code\">\n<div class=\"hljs-ln-line\">my_config.width = <span class=\"hljs-number\" style=\"color: #986801;\">1000<\/span><\/div>\n<\/div>\n<\/li>\n<li>\n<div class=\"hljs-ln-numbers\"><\/div>\n<div class=\"hljs-ln-code\"><\/div>\n<\/li>\n<li>\n<div class=\"hljs-ln-numbers\"><\/div>\n<div class=\"hljs-ln-code\">\n<div class=\"hljs-ln-line\">chart = pygal.Bar(my_config,style = my_style)<\/div>\n<\/div>\n<\/li>\n<li>\n<div class=\"hljs-ln-numbers\"><\/div>\n<div class=\"hljs-ln-code\">\n<div class=\"hljs-ln-line\">chart.title = <span class=\"hljs-string\" style=\"color: #50a14f;\">&#8220;most stared python projects on github&#8221;<\/span><\/div>\n<\/div>\n<\/li>\n<li>\n<div class=\"hljs-ln-numbers\"><\/div>\n<div class=\"hljs-ln-code\">\n<div class=\"hljs-ln-line\">chart.x_labels= names<\/div>\n<\/div>\n<\/li>\n<li>\n<div class=\"hljs-ln-numbers\"><\/div>\n<div class=\"hljs-ln-code\"><\/div>\n<\/li>\n<li>\n<div class=\"hljs-ln-numbers\"><\/div>\n<div class=\"hljs-ln-code\">\n<div class=\"hljs-ln-line\">chart.add(<span class=\"hljs-string\" style=\"color: #50a14f;\">&#8221;<\/span>,plot_dicts)<\/div>\n<\/div>\n<\/li>\n<li>\n<div class=\"hljs-ln-numbers\"><\/div>\n<div class=\"hljs-ln-code\">\n<div class=\"hljs-ln-line\">chart.render_to_file(<span class=\"hljs-string\" style=\"color: #50a14f;\">&#8220;python_respon.svg&#8221;<\/span>)<\/div>\n<\/div>\n<\/li>\n<\/ol>\n<p style=\"color: #4d4d4d;\">\u62a5\u9519\uff1a<\/p>\n<p style=\"color: #4d4d4d;\">Traceback (most recent call last):<br \/>\nFile &#8220;F:\\workspace\\python\\api\\python_request.py&#8221;, line 62, in &lt;module&gt;<br \/>\nchart.render_to_file(&#8220;python_respon.svg&#8221;)<br \/>\nFile &#8220;C:\\Users\\zawdcxs\\AppData\\Local\\Programs\\Python\\Python36\\lib\\site-packages\\pygal\\graph\\public.py&#8221;, line 114, in render_to_file<br \/>\nf.write(self.render(is_unicode=True, **kwargs))<br \/>\nFile &#8220;C:\\Users\\zawdcxs\\AppData\\Local\\Programs\\Python\\Python36\\lib\\site-packages\\pygal\\graph\\public.py&#8221;, line 52, in render<br \/>\nself.setup(**kwargs)<br \/>\nFile &#8220;C:\\Users\\zawdcxs\\AppData\\Local\\Programs\\Python\\Python36\\lib\\site-packages\\pygal\\graph\\base.py&#8221;, line 217, in setup<br \/>\nself._draw()<br \/>\nFile &#8220;C:\\Users\\zawdcxs\\AppData\\Local\\Programs\\Python\\Python36\\lib\\site-packages\\pygal\\graph\\graph.py&#8221;, line 933, in _draw<br \/>\nself._plot()<br \/>\nFile &#8220;C:\\Users\\zawdcxs\\AppData\\Local\\Programs\\Python\\Python36\\lib\\site-packages\\pygal\\graph\\bar.py&#8221;, line 146, in _plot<br \/>\nself.bar(serie)<br \/>\nFile &#8220;C:\\Users\\zawdcxs\\AppData\\Local\\Programs\\Python\\Python36\\lib\\site-packages\\pygal\\graph\\bar.py&#8221;, line 116, in bar<br \/>\nmetadata)<br \/>\nFile &#8220;C:\\Users\\zawdcxs\\AppData\\Local\\Programs\\Python\\Python36\\lib\\site-packages\\pygal\\util.py&#8221;, line 233, in decorate<br \/>\nmetadata[&#8216;label&#8217;])<br \/>\nFile &#8220;C:\\Users\\zawdcxs\\AppData\\Local\\Programs\\Python\\Python36\\lib\\site-packages\\pygal\\_compat.py&#8221;, line 61, in to_unicode<br \/>\nreturn string.decode(&#8216;utf-8&#8217;)<br \/>\nAttributeError: &#8216;NoneType&#8217; object has no attribute &#8216;decode&#8217;<br \/>\n\u4ed4\u7ec6\u6821\u5bf9\u548c\u4e66\u4e0a\u7684\u5bf9\u6bd4\u8fc7\u90fd\u6253\u7684\u4e00\u6837\u4e86\uff0c\u8fd8\u662f\u62a5\u9519\u3002\u3002<\/p>\n<p style=\"color: #4d4d4d;\">\u6700\u540e\u770b\u5230\u5173\u952e3\u884c\uff1a<\/p>\n<p style=\"color: #4d4d4d;\">metadata[&#8216;label&#8217;])<\/p>\n<p style=\"color: #4d4d4d;\">return string.decode(&#8216;utf-8&#8217;)<br \/>\nAttributeError: &#8216;NoneType&#8217; object has no attribute &#8216;decode&#8217;<\/p>\n<p style=\"color: #4d4d4d;\">\u201d\u7a7a\u7c7b\u578b\u201c\u5bf9\u8c61\u6ca1\u6709\u5c5e\u6027\u201cdecode\u201d<\/p>\n<p style=\"color: #4d4d4d;\">\u5e94\u8be5\u662flabel\u5c5e\u6027 \u671f\u671b\u662f\u4e2a\u5b57\u7b26\u4e32\uff1f<\/p>\n<p style=\"color: #4d4d4d;\">for respon_dic in respon_dics:<br \/>\nnames.append(respon_dic[&#8216;name&#8217;])<br \/>\nplot_dict = {<br \/>\n&#8216;value&#8217;:respon_dic[&#8216;stargazers_count&#8217;],<br \/>\n&#8216;label&#8217;:respon_dic[&#8216;description&#8217;]<br \/>\n}<br \/>\nplot_dicts.append(plot_dict)<br \/>\n#plot_dicts.append(respon_dic[&#8216;stargazers_count&#8217;])<br \/>\n\u91cc\u9762&#8217;label&#8217;:respon_dic[&#8216;description&#8217;]\u6539\u4e3a&#8217;label&#8217;:str(respon_dic[&#8216;description&#8217;])<\/p>\n<p style=\"color: #4d4d4d;\">\u641e\u5b9a\u3002<\/p>\n<p style=\"color: #4d4d4d;\">\u6548\u679c\uff1a<\/p>\n<p style=\"color: #4d4d4d;\"><img decoding=\"async\" src=\"https:\/\/img-blog.csdn.net\/20170829215041720?watermark\/2\/text\/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMTU1MTQ1NjU=\/font\/5a6L5L2T\/fontsize\/400\/fill\/I0JBQkFCMA==\/dissolve\/70\/gravity\/Center\" alt=\"\" \/><\/p>\n<p>from:https:\/\/blog.csdn.net\/qq_15514565\/article\/details\/77688676<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u4ee3 \u7801\uff1a import requests import pygal from pygal.style import LightenStyle as ls,LightColorizedStyle as lcs #\u6267\u884capi\u8c03\u7528\u5e76\u5b58\u50a8\u76f8\u5e94 ur &#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7],"tags":[],"class_list":["post-153","post","type-post","status-publish","format-standard","hentry","category-python"],"_links":{"self":[{"href":"http:\/\/www.jichangqing.net\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/153","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.jichangqing.net\/wordpress\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.jichangqing.net\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.jichangqing.net\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.jichangqing.net\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=153"}],"version-history":[{"count":1,"href":"http:\/\/www.jichangqing.net\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/153\/revisions"}],"predecessor-version":[{"id":154,"href":"http:\/\/www.jichangqing.net\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/153\/revisions\/154"}],"wp:attachment":[{"href":"http:\/\/www.jichangqing.net\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=153"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.jichangqing.net\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=153"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.jichangqing.net\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=153"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}