Python 性能问题
Python performance issue
我有如下数据
print(json_ls)
[{'user_id': '1', 'lot_number': 'b49d18f1b', 'status': 'send'},
{'user_id': '2', 'lot_number': 'b49d18f1c', 'status': 'send'},
{'user_id': '3', 'lot_number': 'b49d18f1d', 'status': 'send'},
{'user_id': '4', 'lot_number': 'b49d18f1e', 'status': 'send'}]
我需要将以上数据以下面的格式发送到API
{'users': [
{'user_id': '1', 'status': 'ready'},
{'user_id': '2', 'status': 'ready'},
{'user_id': '3', 'status': 'ready'},
{'user_id': '4', 'status': 'ready'}
]}
我写了下面的代码,因为 url 需要批号,我最初考虑在数据框中放入下面的代码。
final_data = {'users': []}
for ls in json_ls:
lot = ls.get("lot_number")
url = url + lotnumber
request_data = {a: b for (a, b) in ls.items() if a != "lot_number"}
final_data['users'].append(request_data)
for users in final_data.get("recipients"):
users["status"] = "ready"
response = requests.patch(url, data=json.dumps(final_data), headers=headers)
将 500 个用户处理为 API,用了 15 分钟,而且并非所有用户状态都更改为 "ready"。对于每个用户,状态应以 "ready" 状态发送。
任何人都可以帮助我解决这个问题以及如何提高编码部分的性能(我评论了响应并检查了执行时间。它更快并且接缝 API 本身需要时间来响应每个用户)
感谢您的帮助。
我怀疑您的性能问题归结为发送了不正确的数据,您的最终数据始终包括以前迭代中的用户,因此您没有更新 500 个用户,您更新的是 1 + 2 + ... + 500 个用户( 125k 用户)..
真的,您根本不需要最终数据。
for ls in json_ls:
lot = ls.get("lot_number")
url = url + lotnumber
response = requests.patch(url, data=json.dumps({'users': [ {'user_id':ls['user_id'], 'status': 'ready'}]}), headers=headers)
我有如下数据
print(json_ls)
[{'user_id': '1', 'lot_number': 'b49d18f1b', 'status': 'send'},
{'user_id': '2', 'lot_number': 'b49d18f1c', 'status': 'send'},
{'user_id': '3', 'lot_number': 'b49d18f1d', 'status': 'send'},
{'user_id': '4', 'lot_number': 'b49d18f1e', 'status': 'send'}]
我需要将以上数据以下面的格式发送到API
{'users': [
{'user_id': '1', 'status': 'ready'},
{'user_id': '2', 'status': 'ready'},
{'user_id': '3', 'status': 'ready'},
{'user_id': '4', 'status': 'ready'}
]}
我写了下面的代码,因为 url 需要批号,我最初考虑在数据框中放入下面的代码。
final_data = {'users': []}
for ls in json_ls:
lot = ls.get("lot_number")
url = url + lotnumber
request_data = {a: b for (a, b) in ls.items() if a != "lot_number"}
final_data['users'].append(request_data)
for users in final_data.get("recipients"):
users["status"] = "ready"
response = requests.patch(url, data=json.dumps(final_data), headers=headers)
将 500 个用户处理为 API,用了 15 分钟,而且并非所有用户状态都更改为 "ready"。对于每个用户,状态应以 "ready" 状态发送。
任何人都可以帮助我解决这个问题以及如何提高编码部分的性能(我评论了响应并检查了执行时间。它更快并且接缝 API 本身需要时间来响应每个用户)
感谢您的帮助。
我怀疑您的性能问题归结为发送了不正确的数据,您的最终数据始终包括以前迭代中的用户,因此您没有更新 500 个用户,您更新的是 1 + 2 + ... + 500 个用户( 125k 用户)..
真的,您根本不需要最终数据。
for ls in json_ls:
lot = ls.get("lot_number")
url = url + lotnumber
response = requests.patch(url, data=json.dumps({'users': [ {'user_id':ls['user_id'], 'status': 'ready'}]}), headers=headers)