2017-01-12 3 views
0

Dies ist eine dumme Frage, ich weiß.Fügen Sie 'u' Präfix zu Zeichenfolge

ich eine Anfrage mache, gibt die Anfrage so etwas wie diese

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

Nun, wenn ich print(r.text) tun (mit r wobei die Variable die obige Zeichenfolge gespeichert ist), druckt er es, wie es aus ist oben dargestellt.

Allerdings, wenn ich print("\u003cdiv style=\u0027inline-block\u0027\u003e\u003cdiv class=\u0027fbox\u0027\u003e\u003cdiv\u003e\u003ca")

Es druckt "<div style='inline-block'><div class='fbox'><div><a“.

Also ich frage mich, wie ich wie die zweite Version drucken Sie.

Dies könnte nicht klar sein, so Summe it up:

Wenn ich die rohe Zeichenfolge mit \u003 usw. darin drucke, druckt es mit \u003 ersetzt mit seinem Unicode-Zeichen int es ist die Antwort von einer Anfrage, es druckt aus, ohne das Zeichen zu ersetzen.

+0

verwenden Sie Python 2.x oder Python 3.x? r.text sieht so aus, als ob Sie die Anforderungsbibliothek verwenden. Ist das wahr? – guettli

+0

Python 3.4.3 und ja, Anfragen Modul – Will

+0

Haben Sie mit 'str' oder' repr' auf 'r.text' verstimmt? Außerdem scheint es, dass Sie ein Codierungsproblem haben, das Sie mit Anfragen beheben können (wenn Sie das verwenden). Ich habe noch nie Unicode-Werte von einer Website zurückgegeben –

Antwort

0

Es scheint, als ob r.text als eine rohe Zeichenfolge gespeichert wird. das heißt

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

Um es in Unicode zu konvertieren, müssen Sie die codecs Modul:

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

Dies ist fast sicher JSON, und es gibt feine Unterschiede zwischen Python und JSON, die '\ uhhhh'-Escapes verwenden. Diese können beim Decodieren eine Rolle spielen. –

Verwandte Themen