Maison  >  Article  >  développement back-end  >  Comment récupérer des objets chaîne à partir de JSON dans Python 2 ?

Comment récupérer des objets chaîne à partir de JSON dans Python 2 ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-02 23:49:30289parcourir

How to Retrieve String Objects from JSON in Python 2?

Récupération d'objets chaîne à partir de JSON dans Python 2

Lors de l'analyse de JSON dans Python 2 à partir de fichiers texte codés en ASCII, les valeurs de chaîne sont automatiquement converties aux objets Unicode. Cela peut poser un problème lors de l'interface avec des bibliothèques qui acceptent exclusivement des objets chaîne.

Bien que la mise à jour vers Python 3 ou l'utilisation d'une fonction de conversion soient des solutions viables, une autre option consiste à exploiter PyYAML. PyYAML propose une approche plus directe en renvoyant des objets chaîne sous forme de clés et de valeurs pour les fichiers JSON :

<code class="python">import yaml

list_org = ['a', 'b']
list_dump = json.dumps(list_org)
json_result = json.loads(list_dump)
yaml_result = yaml.safe_load(list_dump)

print(json_result, type(json_result))  # [u'a', u'b'], <type 'list'>
print(yaml_result, type(yaml_result))  # ['a', 'b'], <type 'list'></code>

Notez que la fonction de chargement de PyYAML doit être remplacée par safe_load pour garantir la compatibilité avec JSON. De plus, même si les entrées codées en ASCII génèrent des objets chaîne, l'utilisation d'entrées codées en Unicode produira toujours des objets Unicode.

Si la conversion d'objets chaîne en objets Unicode est nécessaire, la fonction de conversion de Mark Amery peut être utilisée :

<code class="python">from mark_amery import unicode_to_str

json_list = json.loads(json_list)
str_list = unicode_to_str(unicode_list)</code>

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn