将列表值传递给示例JSON请求主体时,从python中的列表中删除[

时间:2018-05-30 14:08:01

标签: python

我有一个简单的问题。我在Python中有一个带有值的列表。

service_list = [ AX100 , BX200 , CX300 ]

现在我正在尝试将此列表传递给示例JSON正文,我可以在其中打开SNOW票证,这样就是示例JSON数据:

'u_template': 'CONFIG FILE', 
'approval': 'Request for Approval', 
'u_uuid': 'a13b8180-6400-11e8-a39e-005046a6000d',
 'short_description': 'short_description_ie ', 
'start_date': '2018-06-11 05:00:55',
 'end_date': '2018-06-12 05:00:55',
 'work_start': '2018-06-11 05:00:55', 
'work_end': '2018-06-12 05:00:55',
 'u_creating_group': 'sdo',
'u_affected_ci': service_list
}

但是对于密钥u_affected_ci,它期望值仅为AX100 , BX200 , CX300而不是[ AX100 , BX200 , CX300 ],因此请向我建议如何删除前面的[和列表后面的]添加“”以覆盖整个值,然后传递给JSON正文。

2 个答案:

答案 0 :(得分:4)

将列表替换为, - 分隔字符串。

d = {
    ...,
    'u_affected_ci': ','.join(service_list)
}

data = json.dumps(d)

答案 1 :(得分:1)

看起来JSON需要字符串而不是列表。您不必将此视为从列表中删除[](表示JSON中的数组),而是需要弄清楚如何将列表转换为具有正确格式的字符串。特别是,字符串必须以逗号分隔。谢天谢地,我们在字符串上有join()方法。它的工作原理如下:

> service_list = [ 'AX100' , 'BX200' , 'CX300' ]
> ','.join(service_list) 
=> 'AX100,BX200,CX300'

如果将结果存储在变量中,则可以在字典中使用该序列化为JSON的变量:

service_string = ','.join(service_list)