我正在使用Robotframework和CSVLibrary来编写随机生成的字符串。写入CSV时出错。以下是代码
${datalist} CREATE LIST
${list}= getmandatory test.xml testInfo
: FOR ${a} IN @{list}
\ ${random}= String.Generate Random String ${a.maxlength} [UPPER]${a.format}
\ append to list ${datalist} ${random}
log to console ${datalist}
append to csv file data.csv ${datalist}
getmandatory是一个python pgm wshich返回给定xml中所有必填字段的列表。列表值是随机生成的字符串,['BDSVRtZEISBGItUtUMYHBULtUEZQTtDOCBFUGJAPWHXtIeYKTUAWOLSPFBXQCDWLtTIPtOJFTBXSUAYMMNtPRRFMQZGXKBUAtIFD','DHeSR']
我收到了错误,
TypeError:需要类似字节的对象,而不是'str'
我不确定我在这里做错了什么。请帮忙!
答案 0 :(得分:2)
我可以用CSVLibrary和python3重现这个问题。
在CSVLibrary / init .py中,您将找到以下功能。
01 client-file-record.
*> ...
03 booking-type PIC 9.
88 cruise VALUE 1.
88 air-independent VALUE 2.
88 air-tour VALUE 3.
88 other VALUE 4.
*> ...
将此更改为:(' a'而不是' ab')
@staticmethod
def _open_csv_file_for_write(filename, data, csv_writer=csv.writer, **kwargs):
with open(filename, 'ab') as csv_handler:
writer = csv_writer(csv_handler, **kwargs)
在Python 3中,unicode字符串是默认的,你不能以二进制模式写它们。
请参阅TypeError: a bytes-like object is required, not 'str' in python and CSV