J'ai fait une demande JSON qui me donne une chaîne qui utilise Codes de caractères Unicode qui a l'air Comme: et je veux le convertir en: p> Quelle est la meilleure façon de le faire à Python? P> note, c'est la même question que Celui-ci , seulement dans Python sauf Ruby. J'utilise également le API postereuse . P> P>
3 Réponses :
>>> "\\u003Cp\\u003E".decode('unicode-escape') u'<p>'
Si les données sont venues de JSON, le module JSON code> doit déjà avoir déjà décodé ces évasions pour vous:
>>> import json
>>> json.loads('"\u003Cp\u003E"')
u'<p>'
J'aimerais pouvoir marquer ces deux réponses comme correctes. Merci pour ton aide!
@Spike: S'il s'agit d'une entrée JSON, c'est la bonne réponse réelle. Les littéraux de String Python ne sont pas complètement compatibles avec JSON String Literranmes et Unicode-Scape Code> peuvent renvoyer les mauvais résultats pour des caractères en dehors du plan multilingue de base (que JS / JSON Store sous forme de substitution, mais Python pourrait ne pas).
EDIT: la question originale " les caractères sans-accessoires dans une chaîne avec python em>" n'a pas précisé si la chaîne devait être J'ai donc répondu à la question opposée: comment écrire strong> em> JSON Les données sérialisées les larginement à une chaîne non évaluée (plutôt que de charger des données de la chaîne). p> Mon cas d'utilisation produisait un fichier JSON à partir de mon propre dictionnaire de données, mais le fichier contenait des caractères non ascii scapés. Donc je l'ai fait comme ceci: p> si pris à partir d'ici: https://docs.python.org/3/library/json.html p> p> s'assurent_ascii code> est vrai (la valeur par défaut), la sortie est garantie de tous les caractères non-ASCII entrants échappé. Si
S'assurer_AcFII code> est faux, ces caractères seront émis sous la forme. P>
Heads-up: J'ai édité la question (WOW presque une décennie) avec un arrière-plan et votre réponse à enlever une partie de l'intro supplémentaire - n'hésitez pas à revenir si vous ne pensez pas que c'était approprié!
Merci @ ti7 Je préfère clarifier cette réponse a été écrite avant votre changement du titre original