Dies ist mein erstes Mal mit Sellerie in Python 3 arbeiten. Um meine Füße nass zu bekommen, gebe ich eine Zeichenfolge "Dies war eine Hallo-Aufgabe" als Ergebnis von einem Arbeiter und Speichern ist dies eine Postgres-Datenbank. Wenn ich auf das Ergebnis von meiner Datenbank zugreife, hat es die Form einer Speicheransicht in Python und die Datenbank selbst hat eine Ergebnisspalte von sellery_taskmeta als Datentyp bytea (das ist auch, was Sellery an die Datenbank sendet).Wie bekomme ich Sellerie, um ein Json-Objekt anstelle von Bytea zurückzugeben?
Das ist mein Sellerie config:
import os
broker_url = os.environ.get('RABBITMQ_BIGWIG_TX_URL')
worker_concurrency = 3
result_backend = 'db+postgres://...'
task_serializer = 'json'
result_serializer = 'json'
accept_content = ['json']
Warum bin ich kein json Ergebnis in meiner Datenbank gespeichert zu bekommen? Auch kann ich nicht die bytea dekodieren JSon oder utf-8-Text, bekomme ich diesen Fehler:
hier ist, wie es in Bytes aussieht: b'\x80\x04\x95\x1b\x00\x00\x00\x00\x00\x00\x00\x8c\x17"this was a hello task"\x94.'
Befehl: json.loads(t.tobytes())
Ergebnis: UnicodeDecodeError: 'utf-8' codec can't decode byte 0x80 in position 0: invalid start byte
ich das versucht, Unicode, aber ich bekomme den gleichen Fehler: UnicodeDecodeError: 'utf-8' Codec ca Byte ungültig Start – exchez
https://docs.python.org/3.5/library/stdtypes.html#bytes.decode Sie 2. Parameterfehler zu unterdrücken, wie 't verwenden: nicht Byte 0x80 in Position 0 dekodieren .decode ("utf-8", errors = "ignorieren") ' – funphp