【发布时间】:2021-02-14 23:29:00
【问题描述】:
我是一个 Python 菜鸟,目前正在使用 rabbitMQ。我从 rabbitMQ 接收到一个有效负载并对其进行处理。这是第一个函数
def verify_user_id(ch, method, properties, body):
print("[*] Received message for NIN verification")
body = json.loads(body) # convert JSON string to python object
parameters = body.get('parameters')
id_info = {
'first_name': parameters.get('first_name'),
'last_name': parameters.get('last_name'),
'country': parameters.get('country'),
'id_type': parameters.get('id_type'),
'id_number': parameters.get('id_number'),
'entered': parameters.get('entered')
}
partner_params = {
'job_id': parameters.get('job_id'),
'user_id': parameters.get('user_id'),
'job_type': parameters.get('job_type')
}
return body, id_info, partner_params
现在,我想使用上面的函数向服务器发送请求,如下所示:
def smile_identity_func():
body, id_info, partner_params = verify_user_id()
try:
connection = IdApi(str(partner_id), str(api_key), sid_server)
response = connection.submit_job(partner_params, id_info)
obj = response.json()
return jsonify(obj)
ch.basic_ack(delivery_tag=method.delivery_tag)
print(" [x] Done")
except ValueError as e:
# some params are not valid
return str(e)
except ServerError as e:
return str(e)
我知道body, id_info, partner_params = verify_user_id() 是错误的,但我不知道如何正确地将verify_user_id() 及其参数ch, method, properties, body 传递到smile_identity_func()。
我希望能够以不必为“ch、method、properties、body”指定值的方式执行此操作。
【问题讨论】:
-
也许我没有正确理解这个问题,但你为什么不能将它们传递给smile_identity_func() 并在该函数内部将它们用作verify_user_id() 的参数?