50 votes

Dictionnaire Python : suppression des caractères u'

Comment supprimer les caractères u du dictionnaire suivant ?

 {u'name': u'A', u'primary_key': 1}  

Ces données proviennent de la requête Mongo Database find()

pour qu'il ressemble

 {'name': 'A', 'primary_key': 1}

22voto

David Alber Points 6205

Les caractères u que vous voyez signifient simplement qu'il s'agit de chaînes unicode.

Si vous ne voulez pas qu'ils soient unicode, vous pouvez les encoder autrement, comme ASCII.

 >>> s = u'hi!'
>>> s
u'hi'

>>> s2 = s.encode('ascii')
>>> s2
'hi'

7voto

Gopal Gautam Points 116

Si vous voulez simplement convertir le dict en chaîne de données json, vous pouvez faire :

 >>> from bson.json_util import dumps
>>> data = {u'name': u'A', u'primary_key': 1}
>>> dumps(data)
'{"name": "A", "primary_key": 1}'

1voto

IfLoop Points 59461

Comme sven le mentionne dans son commentaire, le u est une indication des types représentés dans mongodb (en fait, c'est parce que json est défini pour utiliser l'unicode).

Ce fait devrait être totalement transparent pour vous, en fait, vous pouvez utiliser les str et unicode indifféremment dans les dicts.

 >>> 'foo' in {u'foo': 5}
True
>>> {u'foo': 5}['foo']
5
>>> 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X