繁体   English   中英

使用 Python 中的特定列(字段)从 ServiceNow 中提取更改请求 CSV

[英]Pulling Change Request CSV from ServiceNow with specific columns (Fields) in Python

目前我有


import requests
import json
import csv

# Set the request parameters
url= 'dev.service-now.com/change_request_list.do?CSV&'
user = 'myuser'
pwd = 'mypass'

# Set proper headers (Unsure if this is needed)
headers = {"Accept":"application/json"}

# Do the HTTP request
response = requests.get(url, auth=(user, pwd), headers=headers )
response.raise_for_status()


with open('out.csv', 'w') as f:
    writer = csv.writer(f)
    for line in response.iter_lines():
        writer.writerow(line.decode('utf-8').split(','))

这会从 ServiceNow 获取我想要的数据,但是它缺少某些字段。 我需要“打开”和“关闭”列,但不确定如何使用我拥有的代码进行查询。

任何帮助都是完美的。 我对使用请求真的很陌生。

这是使用 Rest 表 API 的解决方案,它允许您控制要提取的字段。 我还添加了一个sysparm_query来限制行。

import requests
import json
import csv
from urllib.parse import urlencode

url = 'https://dev.service-now.com/api/now/table/change_request'
user = 'myuser'
pwd = 'mypass'

fields = ['number', 'short_description', 'opened_at', 'closed_at']
params = {
    'sysparm_display_value': 'true',
    'sysparm_exclude_reference_link': 'true',
    'sysparm_limit': '5000',
    'sysparm_fields': ','.join(fields),
    'sysparm_query': 'sys_created_on>2020-09-15'
}
headers = {"Accept":"application/json"}

response = requests.get(url + '?' + urlencode(params),
    auth=(user, pwd), headers=headers)
response.raise_for_status()
rows = response.json()['result']

with open('out.csv', 'w') as f:
    writer = csv.writer(f)
    writer.writerow(fields)
    for row in rows:
        outputrow = []
        for field in fields:
                outputrow.append(row[field])
        writer.writerow(outputrow)

乍一看,您的代码看起来是正确的。 我认为您只需要更新您用于提供sysparm_default_export_fields=all参数的 web 服务 URL 即可。 即: dev.service-now.com/change_request_list.do?CSV&sysparm_default_export_fields=all

之后,您应该会收到包含每个字段的响应,包括系统创建的字段,如 sys_id 和 created_on。 或者,您可以在 ServiceNow 中创建一个新视图,并在 URL 中提供sysparm_view=viewName参数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM