Python 替换变量值
这是我的代码:Python 替换变量值,python,python-3.x,Python,Python 3.x,这是我的代码: checked_ids = request_data["ids"] for service_id in checked_ids: if service == "insertion-order":: IO.modify(id=service_id,data={"state":request_data["state"]},params={"advertiser_id&q
checked_ids = request_data["ids"]
for service_id in checked_ids:
if service == "insertion-order"::
IO.modify(id=service_id,data={"state":request_data["state"]},params={"advertiser_id": advertiser_id })
if service == "line-item"::
LI.modify(id=service_id,data={"state":request_data["state"]},params={"advertiser_id": advertiser_id })
if service == "conversion-pixel":
PIXEL.modify(id=service_id,data={"state":request_data["state"]},params={"advertiser_id": advertiser_id })
if service == "segment-pixel":
SEGMENT.modify(id=service_id,data={"state":request_data["state"]},params={"advertiser_id": advertiser_id })
return Response({"Success":"201"})
正如你们所看到的,我对所有服务都做了同样的事情,比如“插入顺序”、“行项目”等,但只有前几行的变化(即“IO”、“LI”、“像素”、“段”),这些基本上是类实例。我只想用一行来替换它,这样只有这个(“IO”、“LI”、“像素”、“段”)名称改变,即
names = {"insertion-order": IO, "line-item": LI, "conversion-pixel": PIXEl ...}
后来
names[service].modify(id=service_id, data={"state":request_data["state"]}, params={"advertiser_id": advertiser_id })
代替
名称[服务]
我需要IO或LI等动态值。定义服务名称插入顺序之间的映射。。。到IO
service_mapping = {
'insertion-order': IO,
'line-item': LI,
'conversion-pixel': PIXEL,
'segment-pixel': SEGMENT,
}
并使用映射从服务id获取类实例
checked_ids = request_data["ids"]
for service_id in checked_ids:
srv = service_mapping[service_id]
srv.modify(id=service_id,data={"state":request_data["state"]},params={"advertiser_id": advertiser_id })
return Response({"Success":"201"})
注意:您可能需要处理未知服务id的情况
for service_id in checked_ids:
srv = service_mapping.get(service_id)
if srv is None:
# Unknown service_id!
continue
srv.modify(id=service_id,data={"state":request_data["state"]},params=