/ / Por que um novo caractere 'u' é adicionado quando executo o script Python? [duplicado] - python

Por que um novo caractere 'u' é adicionado quando executo o script Python? [duplicado] - python

Eu escrevi um script python que não declara nenhum utf-8 ou qualquer coisa. Quando executo o script, vejo o caractere "u" adicionado. Por que isso? Estou usando a versão Python2.7.

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"
}

Eu vejo um personagem estranho sendo adicionado

insira a descrição da imagem aqui

Respostas:

5 para resposta № 1

Todas as sequências JSON são unicode: "Uma sequência é uma sequência de zero ou mais caracteres Unicode". No Python 2.x, o repr de um de uma string unicode inclui" u "no início, pois é assim que uma literal de string unicode se parece.

Enquanto print () imprime o str () de um dicionário, o str de um dicionário chama a repr dos itens incluídos.


2 para resposta № 2

É apenas um indicador de uma string Unicode no Python 2.x. A notação fornece um indicador visual do tipo de string. Ao imprimir contêineres, as strings são citadas e as strings Unicode têm o u extra:

>>> 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

Os contêineres usam a notação por padrão. Você precisa imprimir os elementos para ver o conteúdo sem aspas ou u:

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