Der Versuch, ein Labor für die Einrichtung eines mobilen Spiels abzuschließen. Aber die Lambda-Funktion wirft den folgenden Fehler:JSON-Fehler erwartete Zeichenfolge oder Puffer: TypeError Lambda-Funktion fehlgeschlagen
expected string or buffer: TypeError
Traceback (most recent call last):
File "/var/task/lambda_function.py", line 34, in lambda_handler json_data = json.loads(msg)
Von dem, was ich verstehe es eine Zeichenkette erwartet, aber die Variable msg ist ein Wörterbuch, das auch Liste enthält. Kann mir jemand erklären, wie ich das schaffen kann? Sollte es stattdessen eine json.dump sein? Neu bei Python und Kodierung also bitte verzeihen Sie, wenn ich die Frage nicht richtig richte. Code ist unten. Vielen Dank im Voraus
def lambda_handler(event, context):
global client
print(event)
# check the receiver's queue url
if client == None:
client = boto3.resource('sqs')
records = event['Records'][0]
sns_data = records['Sns']
msg = sns_data['Message']
print(msg)
json_data = json.loads(msg)
type_of_msg = json_data['type']
sender = json_data['sender']
receiver = json_data['receiver']
amount = json_data['amount']
# queue_name = get_queue_name_by_account_id(receiver)
queue_name = USER_POOL_ID + "_" + receiver
# enqueue the message
queue = client.get_queue_by_name(QueueName=queue_name)
msg = {
"type": type_of_msg,
"amount": amount
}
res = queue.send_message(MessageBody=json.dumps(msg))
print(res)
return json_data['receiver']
Bearbeiten Sie den obigen Beispielcode, um den richtigen Einzug zu erhalten. – Gary02127
Er sagte nur, das ist ein Wörterbuch. –
Sie sollten 'json.dumps' verwenden. –