Maison > Article > développement back-end > Comment récupérer des objets chaîne à partir de JSON dans 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!