Я пытаюсь экспортировать список макросов, которые я получаю с веб-сайта, в CSV.
Проблема заключается в том, что мне нужно запустить этот скрипт через x страниц, каждая страница имеет 100 результатов и каждый результат имеет y количество действий.
Поле 'actions' - это список, который содержит несколько словарей (разные номера в каждом результате), из которых я хочу извлечь первое значение в столбец и второе значение I хочу быть данными, которые идут ниже)
С этим типом данных:
{'id': 360011748819,
'title': 'Macros de reenvío::Portugal::Fraude-Excellence',
'actions':
[{'field': 'status', 'value': 'open'},
{'field': 'comment_value_html',
'value': '<p>{{dc.macro-derivacion_fraude}}</p><p><br></p>'},
{'field': 'current_tags', 'value': 'excellence derived_from_fraud'},
{'field': 'group_id', 'value': '24905185'}]£
Я хотел бы получить CSV, который выглядит следующим образом:
image1
Мне удалось написать это:
for i in range (2):
url = f'https://xxxx.zendesk.com/api/v2/macros.json?active=true;include_usage_24h;page={i+1}'
r = requests.get(url, auth=(user, pwd), headers=headers).json()
if len(r['macros']) == 0:
break ##This breaks the loop if the page is empty
else:
for b in range (100):
d = len(r['macros'][b]['actions'])
lista += [str(r['macros'][b]['id']) + "`" + str(r['macros'][b]['title'])
+ "`" + str(r['macros'][b]['restriction']) + "`" + str(list(r['macros'][b]['actions'][c].values()))
for c in range(d-1)]
ma = pd.DataFrame(lista)
ma.to_csv('accionesmacro.csv', index=False)
Но результат в CSV выглядит так:
image2
Каждое действие создается в отдельной строке ... Я отчасти отчаялся, и любая помощь будет сильно оценена.
С уважением.