Konvertieren von JSON in Wörterbuch von Python [duplicate]

Diese Frage hat hier schon eine Antwort:

  • Json.loads funktioniert nicht mit binärer JSON posted by AngularJS in Python 1 Antwort

Ich habe ein Wörterbuch wie folgt:

{ "reserve": { "duration": { "startTimeUnix": "", "startTime": "صبور باشید...", "endTime": "۱۳۹۴/۰۹/۰۴ ۱۲:۲۰", "endTimeUnix": 1448441400 }, "service": null, "reserver": { "first_name": "مریم", "last_name": "موسوی", "phone": "09124955173" } }, "block": { "duration": null }, "is_block": false, "taken_time": null, "staff": "alireza", "service": [ "O5KLFPZB" ] } 

Und dann habe ich es zu einem Django-Backend-Server über AngularJS gepostet, dann bekomme ich einfach <QueryDict: {}> wenn ich request.POST , also habe ich request.body , danach gab ich:

 b'{ "reserve": { "duration": { "startTimeUnix": "", "startTime": "\xd8\xb5\xd8\xa8\xd9\x88\xd8\xb1 \xd8\xa8\xd8\xa7\xd8\xb4\xdb\x8c\xd8\xaf...", "endTime": "\xdb\xb1\xdb\xb3\xdb\xb9\xdb\xb4/\xdb\xb0\xdb\xb9/\xdb\xb0\xdb\xb4 \xdb\xb1\xdb\xb2:\xdb\xb2\xdb\xb0", "endTimeUnix": 1448441400 }, "service": null, "reserver": { "first_name": "\xd9\x85\xd8\xb1\xdb\x8c\xd9\x85", "last_name": "\xd9\x85\xd9\x88\xd8\xb3\xd9\x88\xdb\x8c", "phone": "09124955173" } }, "block": { "duration": null }, "is_block": false, "taken_time": null, "staff": "alireza", "service": [ "O5KLFPZB" ] }' 

Pt

In views.py

 import json from django.views.decorators.csrf import csrf_exem @csrf_exempt def admin_block_time(request): dic = json.loads(request.body.encode("utf-8")) print(dic) 

Wie kann ich es in Wörterbuch umwandeln, obwohl ich versucht habe json.loads() , aber es hat nicht funktioniert.

One Solution collect form web for “Konvertieren von JSON in Wörterbuch von Python [duplicate]”

Ihre Eingabe ist von Typ bytes , daher wird json.loads(your_json) erhöhen TypeError: the JSON object must be str, not 'bytes' .

Die Lösung besteht darin, sie mit der im Content-Type HTTP Header angegebenen Codierung zu dekodieren:

 >>> import json >>> json.loads(your_json.decode("utf-8")) { 'is_block': False, 'taken_time': None, 'staff': 'alireza', 'block': {'duration': None}, 'service': ['O5KLFPZB'], 'reserve': { 'service': None, 'duration': { 'endTime': '۱۳۹۴/۰۹/۰۴ ۱۲:۲۰', 'startTimeUnix': '', 'endTimeUnix': 1448441400, 'startTime': 'صبور باشید...' }, 'reserver': { 'first_name': 'مریم', 'phone': '09124955173', 'last_name': 'موسوی' } } } 
  • Speicherverlust beim Einbetten und Aktualisieren eines matplotlib-Graphen in einer PyQt-GUI
  • Numpy.ndarray vs pandas.DataFrame
  • Um zu überprüfen, ob die AWS-Instanz nach dem Neustart mit python auftritt
  • Shebang / wähle, welche Version von python ein Skript laufen wird (Windows)
  • Python 3 - Zip ist ein Iterator in einem Pandas Dataframe
  • Wann soll ich Pythons Super () anrufen .__ init __ ()?
  • Wie gehe ich ein oder mehrere Levels mit os.chdir mit '..' 's als Argumente
  • Wie behalte ich die JSON-Schlüsselbestellung mit Python 3 json.dumps?
  • Die passende Zeichenfolge enthält x und gefolgt von y
  • Python 3 SQLite3 - Falsche Anzahl von Bindungen
  • Begrenzt Tweepy Stream auf eine bestimmte Nummer
  • Python ist die beste Programmiersprache der Welt.