2017-01-12 17 views
0

これは愚かな疑問です。私は要求を行っています文字列に 'u'というプレフィックスを付け加えます。

は、要求は今、この

"\u003cdiv style=\u0027inline-block\u0027\u003e\u003cdiv class=\u0027fbox\u0027\u003e\u003cdiv\u003e\u003ca"

のようなものを返す私は(rは、上記の文字列が中に保存されている変数である)print(r.text)行う場合、それはそれとして、それをプリントアウト上記のとおりです。私は print("\u003cdiv style=\u0027inline-block\u0027\u003e\u003cdiv class=\u0027fbox\u0027\u003e\u003cdiv\u003e\u003ca")

をすれば

は、しかしそれは「"<div style='inline-block'><div class='fbox'><div><aを出力します。

だから私は、私は2番目のバージョンのように印刷しないか、疑問に思って。

これは合計にそれほど明確ではないかもしれませんそれ:

生の文字列を\u003などで印刷すると、\u003がユニコード文字に置き換えられて印刷されますが、もし私がintリクエストからの応答です。文字を置き換えずに出力します。

+0

あなたは、Python 2.xまたはPythonの3.xのを使用していますか? r.textはリクエストライブラリを使用しているようです。これは本当ですか? – guettli

+0

Python 3.4.3とyes、要求モジュール – Will

+0

'r.text'に' str'または 'repr'をつけましたか?また、リクエストで修正するためにエンコードの問題があるようです(使用している場合)。私はユニコード値がサイトから返されたことを一度も見たことがありません –

答えて

0

r.textが生の文字列として保存されているようです。ユニコードに変換するために、すなわち

r.text = r"\u003cdiv style=\u0027inline-block\u0027\u003e\u003cdiv class=\u0027fbox\u0027\u003e\u003cdiv\u003e\u003ca" 

、あなたはcodecsモジュールが必要になります。

import codecs 
print(codecs.decode(r.text, 'unicode_escape')) 
+0

これはほぼ確実にJSONであり、PythonとJSONがどのように '\ uhhhh'エスケープを使用するかには微妙な違いがあります。これらはデコード時に重要です。 –

関連する問題