Проблема в том, что у вас есть два типа заголовка в ответе, некоторые из них - простые строки "Germain the wizard"
, а некоторые - массивы строк ['Joe Strong, the boy wizard : or, The mysteries of magic exposed /']
.Кажется, что в этом конкретном случае все списки имеют длину один, но я думаю, что это не всегда так.Чтобы проиллюстрировать, что вам может понадобиться, я добавил join
вместо того, чтобы просто взять title[0]
.
import requests
import json
r = requests.get('https://api.dp.la/v2/items?q=magic+AND+wizard&api_key=09a0efa145eaa3c80f6acf7c3b14b588')
data = json.loads(r.text)
for doc in data["docs"]:
title = doc["sourceResource"]["title"]
if isinstance(title, list):
print(" ".join(title))
else:
print(title)
По моему мнению, этого никогда не должно происходить, API должен возвращать предсказуемые типы, в противном случае он выглядитгрязный на стороне пользователей.