Как создать список из api reponse и удалить дубликаты - PullRequest
0 голосов
/ 05 июня 2019

Я хочу составить список из ответов api json, как показано для каждого билета в jira, и удалить все дубликаты

Я могу получить значения для каждого тикета, но не могу сделать его списком и удалить дубликаты из него для обработки

Вот ответ API JSON для каждого билета

response = {
    "expand": "renderedFields,names,schema,operations,editmeta,changelog,versionedRepresentations",
    "id": "1831845",
    "self": "https://jira.com/login/rest/api/latest/issue/1845",
    "key": "pc-1002",
    "fields": {
                 "customfield_1925": {
                    "self": "https://jira.com/login/rest/api/2/customFieldOption/1056",
                    "value": "windows",
                    "id": "101056"
                }

так что у меня есть такой скрипт:

import requests, json

tick = """jira: pc-1002,pc-1003,pc-1005
env"""
ticks = tick.replace(' ','').split(':')[1].split('\n')[0].split(',')
print(ticks)

for i in ticks:
    url = "https://jira.com/login/rest/api/latest/issue/" + str(i)
    print(url)

    response = requests.request("GET", url, verify=False)
    response = json.loads(response.text)
    resp = response['fields']['customfield_1925']['value']   
    print(resp)

, поэтому он печатает все значения, как показано ниже: выход:

windows1 Windows2 windows1

Я хочу, чтобы выходные значения были уникальными и, как следствие, могли иметь дубликаты.

Я хотел вывод, как показано ниже

['windows1', 'windows2']

1 Ответ

0 голосов
/ 05 июня 2019

Просто добавьте каждый ответ в список ответов и используйте удобный оператор Python «in», чтобы проверить, есть ли каждый ответ в списке.Что-то вроде:

    allResponses = []
    for i in ticks:
        url = "https://jira.com/login/rest/api/latest/issue/" + str(i)
        print(url)

        response = requests.request("GET", url, verify=False)
        response = json.loads(response.text)
        resp = response['fields']['customfield_1925']['value']
        if resp not in allResponses:   
            print(resp)
            allResponses.append(resp)
...