2016-12-05 7 views
-2

私はPython関数を呼び出して引数を渡すロボットフレームワークファイルを持っています。 Pythonに引数をUnicodeとして渡したいのですが、文字列として引き続き渡されます。ロボットフレームワークから文字列の代わりに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を渡す方法任意のアイデアですか?本当に感謝。

私は関数定義に「ユニコード(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" 

私はこの場合は検索したいです変数がファイル内に存在しています。あなたが値を印刷するとき

+0

:あなたは、「ユニコード・エスケープ」コーデックを使用して、それをデコードしてUnicodeにそれを変換することができます。 – Goyo

答えて

1

、当然あなたは、その値の印刷可能な表現を取得。

私はなぜあなたが希望見当がつかないこれをしたいが、あなたはrepr()を呼び出すことによって、あなたの所望の出力を得ることができます。

print repr(var1) 

(また、あなたの問題に関連していないが、デフォルトの引数としてリストを使用しません:。理由としてthis questionを参照してください)

編集だから私はまだあなたがやろうとしているか全くわからないんだけど、私は何が起こっているかあなたはスラッシュ、のXと数字ではなく、バイトからなる生の文字列を持っているということだと思い。 [MCVE]を投稿し、それが悪いのかを説明してください

var1 = r'\x01\x02\x03' 
decoded = var1.decode('unicode-escape') # result: u'\x01\x02\x03' 
+0

さて、私はそれを比較しようとしていますが、比較では、ユニコードと非ユニコードの文字列を比較しようとしているようです。私はrepr()で印刷しようとしましたが、結果は同じようです。しかし、デフォルトの引数のリンクをありがとう。 – Illusionist

+0

実際に問題があるコードを表示する必要があります。 Python 2ではユニコードとバイトチェックを完全に比較することができます。 –

+0

上記のコードで更新ありがとう – Illusionist

関連する問題