收盘价走势图,TypeError: object of type ‘int‘ has no len()

收盘价走势图,TypeError: object of type ‘int’ has no len()

《Python编程从入门到实践》,第十六章16.2.6

当直接运行书本上16.2.6代码时,可能会出现 TypeError: object of type 'int' has no len() 错误,这是因为Pygal 的Line chart,横坐标必须为字符串序列,而书中代码month[]列表转换成了int型。

因此,解决办法是在绘图前将x_unique列表转换成元素为str型列表,对此修改代码如下:

--snip--
x_unique_str = int_str(x_unique) #将整型列表转换为字符串型列表,问题解决
line_chart.x_labels = x_unique_str
def int_str(list_0): #定义一个将元素为整数的列表转换为字符串型列表的函数
    list_1 = []
    for x in list_0:
        x_str = str(x)
        list_1.append(x_str)
    return list_1

完整代码如下:

import json 
import pygal
import math
from itertools import groupby

# creat five lists, store date and close price, respectively
dates = []
months = []
weeks = [<
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值