You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中io.StringIO结合codecs.getwriter写入字符串报类型错误求助

问题分析与解决方案

错误原因

codecs.getwriter('UTF-8')返回的是字节流写入器,它会将传入的字符串编码为UTF-8格式的字节数据,但io.StringIO是文本模式的缓冲区,仅支持接收字符串类型的输入,无法处理字节,因此抛出TypeError: string argument expected, got 'bytes'。

解决方案

由于io.StringIO本身就是面向文本的缓冲区,直接调用其内置的write方法即可完成字符串写入,无需额外使用codecs的写入器:

import io
buffer = io.StringIO()
buffer.write('[]')

# 验证写入结果
print(buffer.getvalue())  # 输出: []

如果确实需要在特定场景下结合codecs的编码能力(比如处理非UTF-8文本的转码),可以先将目标字符串转码为符合要求的字符串后再写入StringIO,但本质上仍需保证写入的是字符串类型。

内容的提问来源于stack exchange,提问作者vinicius de novaes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 07:20:41