なぜPythonスクリプトを実行すると新しい文字 'u'が追加されるのですか?

2017-08-03 5 views
0

私はutf-8など何も宣言していないpythonスクリプトを書いています。スクリプトを実行すると、文字 'u'が追加されています。何故ですか?私はPython2.7のバージョンを使用しています。なぜPythonスクリプトを実行すると新しい文字 'u'が追加されるのですか?

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

私はuはすべてJSON文字列がUnicodeある

enter image description here

+2

これは文字ではありません。これは、Stringのエンコーディングiircを示します。 – Carcigenicate

+0

@Carcigenicateありがとう。正直なところ私が「なぜPythonスクリプトを実行すると新しいキャラクターが追加されるのですか?あなたが今述べた重複した質問は表示されません(つまり、検索は文脈に基づくのではなく、使用された言葉に基づいていました)。今、この質問は重複としてマークされているので、すぐに私は質問することでブロックされます。これは前に私に起こった。 – user3705478

+0

@Carcigenicate iircが何を意味するのか分かりますか? – user3705478

答えて

4

を追加されている奇妙な文字参照: "A string is a sequence of zero or more Unicode charactersを"。 Python 2.xでは、Unicode文字列リテラルのように見えるので、Unicode文字列のaのreprには最初に "u"が含まれています。

print()は辞書のstr()を出力しますが、辞書のstrはインクルードされた項目のreprを呼び出します。

1

これは単なるPython 2.xのUnicode文字列のインジケータです。表記法は、文字列タイプの視覚的インジケータを与える。コンテナを印刷する場合、文字列は引用符で囲まれたとUnicode文字列は、余分の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 

コンテナは、デフォルトでは表記を使用しています。要素を引用符なしに表示するには、次のように入力する必要があります。

>>> L = ['abc',u'def'] 
>>> L 
['abc', u'def'] 
>>> print(L) 
['abc', u'def'] 
>>> for i in L: print i 
... 
abc 
def 
関連する問題