Heim  >  Artikel  >  Backend-Entwicklung  >  Wie erhalte ich String-Objekte von JSON in Python 2?

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

Patricia Arquette
Patricia ArquetteOriginal
2024-11-03 08:39:30593Durchsuche

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>

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>

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!

Stellungnahme:
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