Wie erhalte ich String-Objekte von JSON in Python 2?

Patricia Arquette
Freigeben: 2024-11-03 08:39:30
Original
592 Leute haben es durchsucht

How to Get String Objects from JSON in Python 2?

So rufen Sie String-Objekte aus JSON in Python 2 ab

Beim Parsen von JSON-Daten aus ASCII-codierten Textdateien in Python 2 können Sie möglicherweise stoßen auf das Problem, dass Zeichenfolgenwerte in Unicode-Objekte umgewandelt werden. Dies kann problematisch sein, wenn Sie mit Bibliotheken arbeiten, die nur String-Objekte akzeptieren.

Eine einfache Lösung: PyYAML

Um dieses Problem zu lösen, können Sie die PyYAML-Bibliothek nutzen. Da JSON eine Teilmenge von YAML ist, kann PyYAML verwendet werden, um JSON-Dateien zu analysieren und Schlüssel und Werte als Zeichenfolgen anstelle von Unicode-Objekten zurückzugeben. Hier ist ein Beispiel:

<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>
Nach dem Login kopieren

Konvertierungsansätze

Wenn Sie PyYAML nicht verwenden können, ziehen Sie die Verwendung einer Konvertierungsfunktion in Betracht. Die Konvertierungsfunktion von Mark Amery ist unkompliziert und effektiv:

<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>
Nach dem Login kopieren

Vorbehalte:

  • Wenn die JSON-Datei Nicht-ASCII-Zeichen enthält, wird sie als geparst Unicode-Objekte von PyYAML.
  • Vermeiden Sie die Verwendung der Load()-Funktion von PyYAML, da dies zu Sicherheitsbedenken führen kann. Bevorzugen Sie stattdessen „safe_load()“.
  • Erwägen Sie die Verwendung von Ruamel YAML, wenn Sie Unterstützung für YAML 1.2 oder niedrige Zahlen benötigen.

Das obige ist der detaillierte Inhalt vonWie erhalte ich String-Objekte von JSON in Python 2?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage