Python 如何在mrjob代码中放入print语句以进行调试?

Python 如何在mrjob代码中放入print语句以进行调试?,python,mrjob,Python,Mrjob,如何在mrjob的reducer或mapper中放入调试语句(如print)。如果我尝试使用print或sys.stderr.write(),我会得到一个错误类型error:bytes-like-object是必需的,而不是'str'错误消息表明输出句柄打开的是二进制流,而不是文本流(打开的open(文件名,'w')和打开的open(文件名,'wb')之间的区别。试试看 sys.stdout.write(message.encode()) 如果编码不是默认编码,则必须显式添加该编码(例如mes

如何在mrjob的reducer或mapper中放入调试语句(如print)。如果我尝试使用print或sys.stderr.write(),我会得到一个错误类型error:bytes-like-object是必需的,而不是'str'

错误消息表明输出句柄打开的是二进制流,而不是文本流(打开的
open(文件名,'w')
和打开的
open(文件名,'wb')
之间的区别。试试看

sys.stdout.write(message.encode())
如果编码不是默认编码,则必须显式添加该编码(例如
message.encode('utf-8')