Python实现JSON转Excel时触发TypeError类型错误求助
问题修复说明
报错根因
你触发的TypeError: can only concatenate str (not "dict") to str错误原因明确:
createRow()方法的返回值是构造好的字典对象,专门供给Excel生成逻辑使用- 但你在
json2csv()方法中,直接把createRow()的字典返回值拼接到了字符串类型的result变量上,两种数据类型不兼容,直接触发类型错误。
修复步骤
- 替换json2csv内调用的方法
把json2csv方法里的result += self.createRow(elm, sid)修改为result += self.createRowForCSV(elm, sid),createRowForCSV才是专门生成CSV行字符串的方法,返回值为字符串可直接拼接。 - 删除无效错误行
json2csv方法里的filename=json2excel.csv")存在语法错误(引号不匹配)且无实际作用,直接删除该行即可。 - 匹配输出格式逻辑
你当前设置的输出路径是.xlsx后缀的Excel文件,但convert方法默认调用json2csv返回CSV字符串,直接写入xlsx文件会导致文件损坏无法打开:
- 若要生成Excel:把
convert方法里的jsondata = self.json2csv(data)改为jsondata = self.json2excel(data)即可 - 若要生成CSV:把输出文件后缀改为
.csv,同时将文件打开方式从wb二进制写入改为w文本写入。
内容的提问来源于stack exchange,提问作者ANA
相关产品推荐
相关产品推荐

