Ich versuche json.loads
zu verwenden, um Daten in einer Redshift-Datenbanktabelle zu analysieren. Ich habe die Funktion entfernt, um in einem Python-Skript zu testen, und habe Schwierigkeiten zu verstehen, was passiert.Welches Format muss die Dateneingabe für Pythons json.loads haben?
Der Code Ich verwende ist:
import json
j="'['Bars', 'American (Traditional)', 'Nightlife', 'Restaurants']'"
def trythis(item, reverse):
if not j:
return '1'
try:
arr = json.loads(j)
except ValueError:
return '2'
if not ascending:
arr = sorted(arr, reverse=True)
else:
arr = sorted(arr)
return json.dumps(arr)
print trythis(j, True)
Und das 2
zurückkehrt.
Ich habe versucht, die Eingabevariable auf j="['Bars', 'American (Traditional)', 'Nightlife', 'Restaurants']"
zu ändern, aber das hat nicht funktioniert. In welchem Format muss mein Eingabewert sein?
Ah danke. Würden Sie etwas wie "str.replace" empfehlen, um die inneren einfachen Anführungszeichen in doppelte Anführungszeichen zu setzen? – simplycoding
Ich würde nur die Verwendung von einfachen Anführungszeichen für doppelte Anführungszeichen wechseln. Es ist weniger verwirrend für jeden, der Ihren Code liest. –
Sie sollten nicht versuchen, JSON von Hand zu erstellen, es gibt eine Reihe von Details, die Sie wahrscheinlich nicht richtig erhalten werden. Verwenden Sie eine Bibliotheksfunktion, die JSON aus einer Datenstruktur wie 'json.dumps()' erstellt. – Barmar