Чтобы завершить код, который вы предоставили, нужно добавить обработку данных, полученных в виде словаря (dict), и завершить цикл. Предлагаю следующий алгоритм обработки данных:
1. Убедитесь, что ответ содержит необходимые ключи и значения.
2. Добавьте уникальный идентификатор `shk_id` к каждому элементу, который вы собираете в результирующий список.
3. Обработайте данные, как это делается для списка, если ответ является словарем.
4. В случае возникновения ошибки, обработайте исключения (например, ошибки сети или парсинга JSON).
Вот обновленный код с добавленной обработкой данных:
```python
import requests
import pandas as pd
headers = {
'accept': 'application/json, text/plain, */*',
'accept-language': 'ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7',
'authorization': 'Bearer токен',
'content-type': 'application/json',
'origin': 'сайт',
'priority': 'u=1, i',
'referer': 'https://операционная вкладка',
'sec-ch-ua': '"Chromium";v="134", "Not:A-Brand";v="24", "Google Chrome";v="134"',
'sec-ch-ua-mobile': '?0',
'sec-ch-ua-platform': '"Windows"',
'sec-fetch-dest': 'empty',
'sec-fetch-mode': 'cors',
'sec-fetch-site': 'same-origin',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36',
'x-wbwh-language': 'ru',
'x-wh-egeo': 'Bearer токен'
}
shk_ids = [130, 501, 384]
results = []
for shk_id in shk_ids:
json_data = {
'shk_id': shk_id,
}
try:
response = requests.post(
'https://сайт операции',
headers=headers,
json=json_data,
timeout=10
)
if response.status_code == 200:
result_data = response.json()
print(f"Результат для shk_id {shk_id}: {result_data}")
# Обработка, если результат - это список
if isinstance(result_data, list):
for item in result_data:
item['id'] = shk_id # Добавляем идентификатор shk_id
results.append(item)
elif isinstance(result_data, dict):
# Проверяем, содержит ли словарь необходимые ключи
if 'desired_key1' in result_data and 'desired_key2' in result_data: # Замените на ваши ключи
result_data['id'] = shk_id # Добавляем идентификатор
results.append(result_data)
else:
print(f"Необходимые ключи отсутствуют в результатах для shk_id {shk_id}")
else:
print(f"Ошибка при получении данных для shk_id {shk_id}: {response.status_code}")
except requests.RequestException as e:
print(f"Ошибка сети при запросе для shk_id {shk_id}: {e}")
except ValueError:
print(f"Ошибка при парсинге JSON для shk_id {shk_id}")
# Преобразуем данные в DataFrame
df = pd.DataFrame(results)
print(df)
```
В этом коде мы добавили обработку случаев, когда ответ является словарем, и проверили наличие необходимых ключей в этом словаре. Также мы преобразуем результы в `DataFrame` из библиотеки `pandas` в конце, чтобы удобнее с ними работать. Не забудьте заменить `'desired_key1'` и `'desired_key2'` на реальные ключи, которые вы ожидаете получить в словаре ответа.