开发者社区> 问答> 正文

将unicode而非字符串从机器人框架传递到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而不是u“ 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"

我想查找文件中是否存在此变量。

展开
收起
祖安文状元 2020-02-23 16:25:23 835 0
1 条回答
写回答
取消 提交回答
  • 当您打印一个值时,自然会得到该值的可打印表示形式。

    我不知道为什么会这样,但是您可以通过调用repr()以下命令获得所需的输出:

    print repr(var1)
    
    

    (此外,与您的问题无关,但不要将列表用作默认参数:请查看此问题的原因。)

    编辑所以我仍然不确定您要做什么,但是我认为这是因为您有一个由斜杠,X和数字组成的原始字符串,而不是字节。您可以使用“ unicode-escape”编解码器对其进行解码,从而将其转换为unicode:

    var1 = r'\x01\x02\x03'
    decoded = var1.decode('unicode-escape')  # result: u'\x01\x02\x03'
    
    2020-02-23 16:25:39
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
From Python Scikit-Learn to Sc 立即下载
Data Pre-Processing in Python: 立即下载
双剑合璧-Python和大数据计算平台的结合 立即下载