求解:python出现错误TypeError:TypeError: object of type 'int' has no len()怎么解决

yss5930381 2018-08-31 04:33:11
...全文
9977 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
DP_ChenPeng 2019-11-18
  • 打赏
  • 举报
回复
按照上面二楼老哥方法改了一下源码 line_chart.x_labels = x_unique ->line_chart.x_labels = [str(_) for _ in x_unique] 这样编译就不会再出现类型错误了
weixin_45563617 2019-10-16
  • 打赏
  • 举报
回复
引用 3 楼 wuxiajuan126的回复:
我也是初学者,下面是我的解决代码,定义了两个函数,一个取数据,一个画图,楼主出现的错误,主要是因为画图中横坐标必须是字符串。解决方案如下
#coding=gbk
import pygal
import math
import json
from itertools import groupby



def get_data(filename,dates,months,weeks,weekdays,close):

with open(filename) as f:
btc_data=json.load(f)
for btc_dict in btc_data:
dates.append(btc_dict['date'])
months.append(int(btc_dict['month']))
weeks.append(int(btc_dict['week']))
weekdays.append(btc_dict['weekday'])
close.append(int(float(btc_dict['close'])))

def draw_line(x_data,y_data,title,y_legend):
xy_map=[]

for x,y in groupby(sorted(zip(x_data,y_data)),key=lambda _: _[0]):
y_list=[v for _,v in y]
xy_map.append([x,sum(y_list)/len(y_list)])

x_unique,y_mean=[*zip(*xy_map)]

line_chart=pygal.Line()
line_chart.title=title

'''#注意,横坐标必须是字符串,使用数字会引发TypeError:TypeError: object of type
# 'int' has no len()的异常'''
new_x_unique=[]
for x in x_unique:
new_x_unique.append(str(x))
print(new_x_unique)
line_chart.x_labels=new_x_unique

line_chart.add(y_legend,y_mean)
line_chart.render_to_file(title+'.svg')
return line_chart


dates,months,weeks,weekdays,close=[],[],[],[],[]
get_data('btc_close_2017.json',dates,months,weeks,weekdays,close)

idx_month=dates.index('2017-12-01')
line_chart_month=draw_line(months[:idx_month],close[:idx_month],'收盘价月日均价','月日均价')
line_chart_month
原来有这么多小伙伴用这个书,能找到一模一样的问题,非常有帮助,非常感谢!
Real_csdn_User 2019-10-16
  • 打赏
  • 举报
回复
原本以为这样宽泛的错误在网上搜不到答案,结果一搜就搜到了,谢谢各位大神
隆信 2019-09-17
  • 打赏
  • 举报
回复
非常感谢!!!我把所有函数都一个一个排查,都没发现问题。原来是类型的问题。
qq_36568227 2019-09-15
  • 打赏
  • 举报
回复
感谢楼主以及各位,纠缠了半个下午,终于解决了
  • 打赏
  • 举报
回复
感谢,这个问题找了两天了,终于解决了
wuxiajuan126 2019-08-06
  • 打赏
  • 举报
回复

这是我的运行结果图
wuxiajuan126 2019-08-06
  • 打赏
  • 举报
回复
我也是初学者,下面是我的解决代码,定义了两个函数,一个取数据,一个画图,楼主出现的错误,主要是因为画图中横坐标必须是字符串。解决方案如下
#coding=gbk
import pygal
import math
import json
from itertools import groupby



def get_data(filename,dates,months,weeks,weekdays,close):

with open(filename) as f:
btc_data=json.load(f)
for btc_dict in btc_data:
dates.append(btc_dict['date'])
months.append(int(btc_dict['month']))
weeks.append(int(btc_dict['week']))
weekdays.append(btc_dict['weekday'])
close.append(int(float(btc_dict['close'])))

def draw_line(x_data,y_data,title,y_legend):
xy_map=[]

for x,y in groupby(sorted(zip(x_data,y_data)),key=lambda _: _[0]):
y_list=[v for _,v in y]
xy_map.append([x,sum(y_list)/len(y_list)])

x_unique,y_mean=[*zip(*xy_map)]

line_chart=pygal.Line()
line_chart.title=title

'''#注意,横坐标必须是字符串,使用数字会引发TypeError:TypeError: object of type
# 'int' has no len()的异常'''
new_x_unique=[]
for x in x_unique:
new_x_unique.append(str(x))
print(new_x_unique)
line_chart.x_labels=new_x_unique

line_chart.add(y_legend,y_mean)
line_chart.render_to_file(title+'.svg')
return line_chart


dates,months,weeks,weekdays,close=[],[],[],[],[]
get_data('btc_close_2017.json',dates,months,weeks,weekdays,close)

idx_month=dates.index('2017-12-01')
line_chart_month=draw_line(months[:idx_month],close[:idx_month],'收盘价月日均价','月日均价')
line_chart_month
Johnny_chenhhu 2019-03-13
  • 打赏
  • 举报
回复
是因为你在前面把month和close转化为int,提示int has no len,如果前面不转化就没有问题了
kaer_chen 2018-09-12
  • 打赏
  • 举报
回复
在这行代码中: line_chart.x_labels = x_unique
你的 x_unique 是整形元组
把整形元组转化为String型列表
再赋值给 line_chart.x_labels 就没问题了~
本套课程为Python基础篇的第3套课程,主要讲解python异常处理的系统知识体系。      首先讲解异常的定义与分类: Exception、ValueError、TypeError、OSError等。其次讲解Python的多层次捕获异常机制 try...except...except .... ,然后对于finally、else 关键字以及异常堆栈跟踪等进行一一介绍。      本课程末尾讲解常用的自定义异常与raise自定义抛异常机制,以及assert断言等。      课程末尾需要重点说明的是,本系列课程均设置课堂练习与课后作业集中讲解(录播形式),让初学者通过大量练习与阶段项目等手段有效强化学习效果,保证学习过程中的技能全面提升!  教学特点:      使用大量(3D/2D)动画与图示方式,由浅入深讲解Python编程。配之海量课堂练习/课后作业的大量讲解,以及刘老师风趣幽默的课堂幽默感染力,让你轻松加愉悦的心情下开启Python系统学习之旅,系统与深入掌握当今最为火热的人工智能御用编程语言!      本Python教程分为入门、基础、中级、进阶篇,共15套教程组成。突出教学特点如下:           1:为弥补线下“互动性”与知识点的高“吸收率”,每套课程均设置“课堂练习”、“课后作业”、“阶段项目实战”、以及每个章节末尾的“课程笔记”整理环节,不断强化学员知识点的不断巩固与知识体系的梳理,不遗漏任何重要知识点。 以上四大自学环节设置,保证自学过程中知识的反复锤炼与全面吸收,最终获得优秀学习效果!      2:本Python系列课程(15套)从入门篇开始,完全从真正零基础开始讲起,特别适合中小学生以及大学非计算机专业的初学者开始入门!      3:大量采用3D/2D图形化示例讲解,对于Python抽象与复杂问题全部采用3D动画演示。      4:每套课程开始均设置“课程概述”: 讲解本套课程的前导课程、后续课程,以及本套课程的知识体系内容,帮助学习者更好的掌握课程的来龙去脉。          更多学习内容以图示方式供广大学员参考如下: 

3,423

社区成员

发帖
与我相关
我的任务
社区描述
其他开发语言 其他开发语言
社区管理员
  • 其他开发语言社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧