RobotFramework:CSV库:写入CSV时出错

RobotFramework:CSV库:写入CSV时出错,csv,robotframework,Csv,Robotframework,我正在使用Robotframework和CSVLibrary编写随机生成的字符串。写入CSV时出错。以下是代码 ${datalist} CREATE LIST ${list}= getmandatory test.xml testInfo : FOR ${a} IN @{list} \ ${random}= String.Generate Random String

我正在使用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 wsh,它返回给定xml中所有必填字段的列表。列表值是随机生成的字符串,['bdsvrtzeisbgitumumyhbultuezqttodocbfugjapwhxtieyktuawolspfbxqcdwlttiptojftbxsuaymntprfmqzgxkbuatifd','DHeSR']

我犯了一个错误

TypeError:需要类似字节的对象,而不是“str”


我不确定我在这里做错了什么。请帮忙

我可以用CSVLibrary和python3重现这个问题

在CSVLibrary/init.py中,您可以找到以下函数

@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)
将此更改为:(“a”而不是“ab”)

在Python3中,unicode字符串是默认值,不能以二进制模式写入


参见

我可以用CSV图书馆和Python 3重现这个问题

在CSVLibrary/init.py中,您可以找到以下函数

@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)
将此更改为:(“a”而不是“ab”)

在Python3中,unicode字符串是默认值,不能以二进制模式写入


请参见

请不要发布代码图片的链接。花点时间复制、粘贴和格式化问题中的代码。对不起。更新了问题。错误发生在哪一行?我通常更喜欢编写机器人关键词,就像用英语写高级句子一样,并将
for
s留给Python codeError出现在“append to csv file”处。您在使用python3吗?请不要发布代码图片的链接。花点时间复制、粘贴和格式化问题中的代码。对不起。更新了问题。错误发生在哪一行?我通常更喜欢编写机器人关键字,就像用英语写高级句子一样,并将
留给
s,用于Python codeError出现在“附加到csv文件”中。您使用的是python3吗?我按照建议进行了更改,并将数据附加到csv文件中。非常感谢。现在的问题是,列表值中的每个字符都会写入到每个列中。G | O | D |而不是一列中的上帝我按照建议做了更改,数据被附加到csv文件中。非常感谢。现在的问题是,列表值中的每个字符都会写入到每个列中。G | O | D |而不是一列中的上帝