/ / Warum wird ein neues Zeichen 'u' hinzugefügt, wenn ich das Python-Skript ausführte? [Duplikat] - Python

Warum wird beim Ausführen des Python-Skripts ein neues Zeichen 'u' hinzugefügt? [Duplizieren] - Python

Ich habe ein Python-Skript geschrieben, das keine Utf-8 oder irgendetwas deklariert. Beim Ausführen des Skripts wird das Zeichen "u" hinzugefügt. Warum ist das so? Ich verwende die Python2.7-Version.

access_token = token.json()["access_token"]
print(" "" + access_token + """ )
url = "https://api.yelp.com/v3/businesses/search"
bearer = "Bearer " + access_token
print(bearer)
header = {"Authorization":"Bearer " + access_token}
print(header)
params = {"location": "San Bruno",
"term": "Restaurant",
"radius":"25 miles",
"locale":"en_US",
"sort_by": "rating",
"limit":"50"
}

Ich sehe einen merkwürdigen Charakter, den du hinzugefügt hast

Bildbeschreibung hier eingeben

Antworten:

5 für die Antwort № 1

Alle JSON-Zeichenfolgen sind Unicode: "Eine Zeichenfolge ist eine Folge von null oder mehr Unicode-Zeichen". In Python 2.x enthält die Repräsentation eines Unicode-Strings am Anfang" u ", da ein Unicode-String-Literal so aussieht.

Während print () das str () eines Wörterbuchs druckt, ruft das str eines Wörterbuchs die Repräsentation der enthaltenen Elemente auf.


2 für die Antwort № 2

Es ist nur ein Indikator für einen Unicode-String in Python 2.x. Die Notation gibt einen visuellen Indikator für den String-Typ an. Beim Drucken von Containern werden Strings in Anführungszeichen gesetzt und Unicode-Strings haben das zusätzliche u:

>>> s = "abc"    # byte string
>>> s            # just quotes, no u
"abc"
>>> s.decode("ascii")  # Make it a Unicode string
u"abc"
>>> u = s.decode("ascii")
>>> u
u"abc"
>>> print(u)   # both print the same way
abc
>>> print(s)
abc

Container verwenden standardmäßig die Notation. Sie müssen die Elemente drucken, um den Inhalt ohne Anführungszeichen oder u anzuzeigen:

>>> L = ["abc",u"def"]
>>> L
["abc", u"def"]
>>> print(L)
["abc", u"def"]
>>> for i in L: print i
...
abc
def