Comment récupérer des objets chaîne à partir de JSON dans Python 2
Lors de l'analyse de données JSON à partir de fichiers texte codés en ASCII dans Python 2, vous pouvez rencontrer le problème des valeurs de chaîne converties en objets Unicode. Cela peut être problématique lorsque vous travaillez avec des bibliothèques qui n'acceptent que des objets chaîne.
Une solution légère : PyYAML
Pour résoudre ce problème, vous pouvez exploiter la bibliothèque PyYAML. Comme JSON est un sous-ensemble de YAML, PyYAML peut être utilisé pour analyser les fichiers JSON et renvoyer des clés et des valeurs sous forme de chaînes au lieu d'objets Unicode. Voici un exemple :
<code class="python">import yaml original_list = ['a', 'b'] yaml_list = yaml.safe_load(yaml.dump(original_list)) print(type(yaml_list[0])) # Output: <class 'str'></code>
Approches de conversion
Si vous ne pouvez pas utiliser PyYAML, envisagez d'utiliser une fonction de conversion. La fonction de conversion de Mark Amery est simple et efficace :
<code class="python">def unicode_to_str(obj): if isinstance(obj, unicode): return obj.encode('utf-8') elif isinstance(obj, list): return [unicode_to_str(x) for x in obj] elif isinstance(obj, dict): return {unicode_to_str(k): unicode_to_str(v) for k, v in obj.items()} return obj</code>
Avertissements :
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!