4

重複の可能性:
文字列値の前にある「u」記号は何を意味しますか?

このjsonテキストファイルがあります:

{
   "EASW_KEY":" aaaaaaaaaaaaaaaaaaaaaaa",
   "EASF_SESS":" aaaaaaaaaaaaaaaaaaaaaaa",
   "PHISHKEY":" aaaaaaaaaaaaaaaaaaaaaaa",
   "XSID":" aaaaaaaaaaaaaaaaaaaaaaa"
}

次のようにデコードすると:

import json
data = open('data.txt').read()
data = json.loads(data)
print data['EASW_KEY']

私はこれを得る:

u' aaaaaaaaaaaaaaaaaaaaaaa' 

単純に:

aaaaaaaaaaaaaaaaaaaaaaa

これはuどういう意味ですか?

4

2 に答える 2

5

Pythonの文字列の前の「u」はどういう意味ですか?

Python文字列の前に付ける文字は、Python文字列エンコーディング宣言と呼ばれます。それらについてのすべてをここで読むことができます:https ://docs.python.org/3.3/reference/lexical_analysis.html#encoding-declarations

uはユニコードを表します。そのスロットの代替文字は、r'foobar'生の文字列用であり、b'foobar'はバイト文字列用です。

Pythonがユニコードと見なすものに関するいくつかのヘルプ:http: //docs.python.org/howto/unicode.html

次に、この性質を調べるために、次のコマンドを実行します。

type(u'abc')

戻り値:

<type 'unicode'>

asciiを使用する必要があるときにUnicodeを使用する場合、またはユニコードを使用する必要があるときにasciiを使用する場合、ユーザーが実行時に「ユニコードスペースの探索」を開始すると、バブルアップ実装炎に遭遇する可能性が非常に高くなります。

たとえば、ユニコード文字列をFacebookのapi.fql(...)関数に渡すと、それはユニコードを受け入れると言って、リクエストを適切に処理し、その後、関数がカーペット全体を突き刺すときに関数が成功したかのように未定義の結果を返します。

この投稿で定義されているように:

PythonからのFQLマルチクエリがUnicodeクエリで失敗する

一部のUnicode文字により、本番環境のコードが発作を起こし、床全体に吐き出されます。ですから、あなたが大丈夫であり、顧客がそれを許容できることを確認してください。

于 2012-10-17T14:57:01.783 に答える
2

Unicode オブジェクトの のuプレフィックスは、reprそれが Unicode オブジェクトであることを示します。

Unicode オブジェクト自体を実際にing しているだけで、たとえば、それを含むリストではない場合、これは表示されないはずです。print(実際、コードを実行しても、実際にはこのようには出力されません。)

于 2012-10-17T14:56:23.653 に答える