У меня есть список списков в таком формате:

nrows = ["['Shock pain', 'attack sharp pain']",
         "['bruises', 'lump']",
         "['fever', 'cold', 'Anxiety']",
         "['neck pain', 'headache']"]

Я хочу вызвать API, передавая каждый раз по одному списку из списка nrows. Каждый список должен быть передан 1 к 1 в dict данных с ключом sList, и ответ должен быть сохранен.

Функция API следующая:

newres = []
for i in nrows:
    url = "https://testabcd.io"
    data= {
      "sList": i,
      "kList" : ["age"],
    }
    headers = {
      'Content-Type': 'application/json',
      'Auth': '0644427814339900'
    }
    response = requests.request("GET", url, headers=headers, json=data)
    newres.append(response.text)

    print(response.text)

    print(newres)

Внутри словаря данных, в sList, на каждой итерации я хочу передать по одному подсписку за раз и получить ответ, добавленный в список.

Текущий код имеет тот же ответ, что и, я думаю, я не могу выполнить итерацию и изменить значение dict данных с помощью ключа sList, что и ожидается.

CSV выглядит так:

['Shock pain', 'attack sharp pain']
['bruises', 'lump']
['fever', 'cold', 'Anxiety']
1
kreate mk 10 Фев 2021 в 22:09

1 ответ

Лучший ответ

Если предположить, что файл, с которым вы работаете, действительно выглядит так :

['Shock pain', 'attack sharp pain']
['bruises', 'lump']
['fever', 'cold', 'Anxiety']

Вы можете использовать ast.literal_eval для преобразования строки из файла в список

import requests
from ast import literal_eval

newres = []
url = "https://testabcd.io"
headers = {'Content-Type':'application/json',
           'Auth':'0644427814339900'}

with open("yourfile") as f:
    for line in f:
        data= {"sList": literal_eval(line),
               "kList" : ["age"]}

        response = requests.get(url, headers=headers, json=data)
        newres.append(response.text)
        print(response.text)
        print(newres)

Заметка:

  1. Это не проверено.
  2. Учитывая, что ваши данные поступают из нестандартного файла, куда они были неправильно экспортированы из фрейма данных, созданного неизвестно как, я бы посоветовал вам серьезно пересмотреть весь свой рабочий процесс и то, как вы манипулируете своими данными.
0
buran 10 Фев 2021 в 20:10