将 unicode 而不是字符串从机器人框架传递到 python
Pass unicode instead of string from robot framework to python
我有一个机器人框架文件,我在其中调用一个 python 函数并向其传递一个参数。我想将参数作为 Unicode 传递给 python,但它一直作为字符串传递。
函数是
def assert_my_test( var1, var3=[]):
print "var1" #this i want in unicode, unicode(var1) doesnt help
f=gzip.open("myfile.gzip")
lines=f.readlines()
if any(unicode(var1) in unicode(s) for s in lines):
print "found our line"
机器人是
======================== ===================== =======================
Test Case Action Argument
======================== ===================== =======================
test1 myprog.assert_my_test \x01\x02\x03
输出是 x01x02x03 而不是
你"x01x02x03"
知道如何正确传递 Unicode 吗?非常感谢。
我尝试将“Unicode(var1)”传递给函数定义,但这会导致错误。
我要传递的完整变量是 -
\x01\x02\x03html&h=250&slotname5&adk=1204670.0&url=htt||1|0Ft2qy|4CX000||||17.022qy^A0C5vZBmjiK^ABusiness^DPersonalFin-0^A^A^Afalse^Afalse^A^A^A^A^A^A^A^A^A0^A0^A0^A0^A^A^A1^A^A^A^A1^A^A^A^A6284035007053575^A^A^Aen^A^Ab1cc^A^A8281671^Aalias_type^DDX^Calias_id^D4CXDxrs315^C"
我想查找这个变量是否存在于文件中。
当您打印一个值时,您自然会得到该值的可打印表示。
我不知道你为什么想要这个,但你可以通过调用 repr()
:
获得你想要的输出
print repr(var1)
(另外,与您的问题无关,但不要使用列表作为默认参数:请参阅 this question 了解原因。)
编辑所以我仍然不完全确定你想做什么,但我认为是怎么回事你有一个由斜杠、X 和数字组成的原始字符串,而不是字节。您可以使用 "unicode-escape" 编解码器将其解码为 unicode:
var1 = r'\x01\x02\x03'
decoded = var1.decode('unicode-escape') # result: u'\x01\x02\x03'
我有一个机器人框架文件,我在其中调用一个 python 函数并向其传递一个参数。我想将参数作为 Unicode 传递给 python,但它一直作为字符串传递。
函数是
def assert_my_test( var1, var3=[]):
print "var1" #this i want in unicode, unicode(var1) doesnt help
f=gzip.open("myfile.gzip")
lines=f.readlines()
if any(unicode(var1) in unicode(s) for s in lines):
print "found our line"
机器人是
======================== ===================== =======================
Test Case Action Argument
======================== ===================== =======================
test1 myprog.assert_my_test \x01\x02\x03
输出是 x01x02x03 而不是 你"x01x02x03"
知道如何正确传递 Unicode 吗?非常感谢。
我尝试将“Unicode(var1)”传递给函数定义,但这会导致错误。
我要传递的完整变量是 -
\x01\x02\x03html&h=250&slotname5&adk=1204670.0&url=htt||1|0Ft2qy|4CX000||||17.022qy^A0C5vZBmjiK^ABusiness^DPersonalFin-0^A^A^Afalse^Afalse^A^A^A^A^A^A^A^A^A0^A0^A0^A0^A^A^A1^A^A^A^A1^A^A^A^A6284035007053575^A^A^Aen^A^Ab1cc^A^A8281671^Aalias_type^DDX^Calias_id^D4CXDxrs315^C"
我想查找这个变量是否存在于文件中。
当您打印一个值时,您自然会得到该值的可打印表示。
我不知道你为什么想要这个,但你可以通过调用 repr()
:
print repr(var1)
(另外,与您的问题无关,但不要使用列表作为默认参数:请参阅 this question 了解原因。)
编辑所以我仍然不完全确定你想做什么,但我认为是怎么回事你有一个由斜杠、X 和数字组成的原始字符串,而不是字节。您可以使用 "unicode-escape" 编解码器将其解码为 unicode:
var1 = r'\x01\x02\x03'
decoded = var1.decode('unicode-escape') # result: u'\x01\x02\x03'