7

この操作を実行して、クエリセットを取得しました。

Name.objects.values_list('name', flat=True)

そして、次の結果を返します。

[u'accelerate', u'acute', u'bear', u'big']

結果はすべてユニコード (u') です。結果を得るためにそれらをすべて削除するにはどうすればよいですか:

['accelerate', 'acute', 'bear', 'big']
4

5 に答える 5

14

utf8でエンコードする場合は、次のようにするだけです。

definitions_list = [definition.encode("utf8") for definition in definitions.objects.values_list('title', flat=True)]
于 2013-02-15T13:40:53.817 に答える
9

すべての値を呼び出すことができstrます(マップは少し怠惰であり、list()すぐにインデックス可能なオブジェクトに戻すために追加されていることに注意してください):

thingy = list(map(str, [u'accelerate', u'acute', u'bear', u'big']))

または、リスト内包表記を使用します。

[str(item) for item in [u'accelerate', u'acute', u'bear', u'big']]

strしかし、結局のところ、なぜそれらを明示的に要求するのでしょうか。djangoテンプレート(のような{{ value }})に追加すると、uは消えます。

于 2013-02-15T13:39:57.707 に答える
2

短い方法は使用していると思いますjson.dumps()

json.dumps(definitions.objects.values_list('title', flat=True))

したがって、文字列の結果は次のようなjson形式で取得されます

'["accelerate", "acute", "bear", "big" ...]'

それをpython変数に変更したい場合はeval、関数として使用するだけなので、コードは次のようになります

json_format_string = json.dumps(definitions.objects.values_list('title', flat=True))

my_list = eval(json_format_string)  # ['accelerate', 'acute', 'bear', 'big' ...]
于 2014-09-01T08:23:01.810 に答える