io.StringIO
在Python 2.7中令人困惑,因为它是从3.x字节/字符串世界向后移植的。此代码与您的错误相同:
from io import StringIO
sio = StringIO()
sio.write("Hello\n")
原因:
Traceback (most recent call last):
File "so2.py", line 3, in <module>
sio.write("Hello\n")
TypeError: string argument expected, got 'str'
如果仅使用Python 2.x,则io
完全跳过该模块,并坚持使用StringIO。如果您确实要使用io
,请将导入更改为:
from io import BytesIO as StringIO