Python列表传入SNOW工单JSON请求时去除方括号的方法咨询
解决SNOW工单请求体中
u_affected_ci字段的格式问题 没问题,我来帮你搞定这个Python列表转SNOW要求格式的问题!首先提个小细节:你的原始列表定义里,AX100这些元素得是字符串类型,不然Python会把它们当成未定义的变量,直接报错NameError。所以正确的列表应该这么写:
service_list = ['AX100', 'BX200', 'CX300']
接下来,要把这个列表转换成SNOW要求的不带方括号、整体加引号的逗号分隔字符串,这里有几种实用的实现方式:
方法1:用str.join()快速拼接(最推荐)
str.join()是Python处理字符串拼接的高效方法,能直接把列表元素用指定分隔符连起来,再给结果套上引号就搞定了:
# 用逗号加空格分隔,再包裹单引号 formatted_ci = "'" + ", ".join(service_list) + "'" # 或者用f-string写法更简洁直观 formatted_ci = f"'{', '.join(service_list)}'"
把这个处理后的字符串代入请求体就行:
service_list = ['AX100', 'BX200', 'CX300'] formatted_ci = f"'{', '.join(service_list)}'" request_body = { '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': formatted_ci }
这样生成的u_affected_ci值就是'AX100, BX200, CX300',完全符合SNOW的要求。
方法2:手动拼接(适合固定短列表)
如果你的列表元素数量固定且很少,也可以手动拼,但这种方式不够灵活,动态列表就不适用了:
formatted_ci = f"'{service_list[0]}, {service_list[1]}, {service_list[2]}'"
额外注意点
- 如果列表里不是字符串(比如数字),得先转成字符串再拼接:
num_list = [100, 200, 300] formatted_ci = f"'{', '.join(map(str, num_list))}'" - 如果SNOW要求用双引号包裹内容,把代码里的单引号换成双引号就行:
formatted_ci = f'"{', '.join(service_list)}"' - 最后发送请求的时候,记得用
json.dumps()把字典转成标准JSON字符串,避免格式出错:import json json_request = json.dumps(request_body)
内容的提问来源于stack exchange,提问作者Ajay Mathews
相关产品推荐
相关产品推荐

