Comment obtenir des objets chaîne à partir de JSON dans Python 2
L'accès aux données JSON à l'aide de Python peut générer des objets Unicode malgré les sources de texte codées en ASCII. Certaines bibliothèques exigent des objets chaîne, ce qui entraîne des problèmes de compatibilité.
Pour résoudre ce problème dans Python 2, envisagez d'utiliser PyYAML comme analyseur JSON alternatif :
<code class="python">import yaml json_str = '["a", "b"]' data = yaml.safe_load(json_str)</code>
Résultats :
['a', 'b'] # String objects
Remarques :
Conversion :
Si vous ne pouvez pas garantir les valeurs ASCII, utilisez une fonction de conversion pour garantir les objets chaîne :
<code class="python">def to_str(obj): if isinstance(obj, unicode): return str(obj) elif isinstance(obj, list): return [to_str(item) for item in obj] elif isinstance(obj, dict): return {to_str(key): to_str(value) for key, value in obj.items()} else: return obj data = json.loads(json_str, object_hook=to_str)</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!