ich in Python versuchen einige dict in eine Funktion zu entpacken:ein Wörterbuch auspacken und auf eine Funktion als Keyword-Übergabe von Parametern
Ich habe eine Funktion, die packet
als Parameter erhält
def queue(self, packet):
self.topic.publish(self.message, self.client, **packet)
(das dict sein sollte)
und ich nenne es so aus:
queue({
'an_item': 1,
'a_key': 'value'
})
die Publish-Funktion ist in 3rd party api (Google Pub/Sub-API) und von dem, was ich an der Quelle sah:
es akzeptiert ** attrs, um alle Schlüsselwortparameter in eine andere Funktion zu übergeben.
Momentan .. meine queue() Funktion funktioniert nicht.
Wie, wenn möglich, kann ich meine queue()
Funktion zu entpacken das packet
dict Argument in etwas publish()
wird akzeptieren?
Danke!
EDIT:
Einige Fehlermeldungen ich habe.
für:
def queue(self, packet):
self.topic.publish(self.message, self.client, **packet)
ich: TypeError: 1 has type <class 'int'>, but expected one of: (<class 'bytes'>, <class 'str'>)
für:
def queue(self, packet):
self.topic.publish(self.message, self.client, packet)
ich: publish() takes from 2 to 3 positional arguments but 4 were given
für:
def queue(self, **packet):
self.topic.publish(self.message, self.client, packet)
ich: TypeError: queue() takes 1 positional argument but 2 were given
und für:
def queue(self, *packet):
self.topic.publish(self.message, self.client, packet)
ich: TypeError: publish() takes from 2 to 3 positional arguments but 4 were given
EDIT 2:
als @gall richtig vorgeschlagen, es ist die Daten, die ich sendete und es gibt kein Problem mit dem Auspacken.Mit dieser Funktion:
def queue(self, packet):
self.topic.publish(self.message, self.client, **packet)
Es funktioniert, wenn ich es mit Streichern rufen nur:
queue({
'an_item': '1',
'a_key': 'value'
})
Vielen Dank!
Wie funktioniert Ihre Funktion nicht, können Sie eine Fehlermeldung ausgeben? –
Ja @ JonasAdler. Vielen Dank. Ich werde ein Beispiel für Fehlermeldungen hinzufügen, was ich bisher versucht habe. –
Worauf bezieht sich "self.topic"? eine Instanz der 'Topic' Klasse oder nur die Klasse selbst? – danidee