Добавить в словарь список двойной вложенности в качестве значения и сериализовать его элементы

Прошу, подскажите. Есть переменная

response = [
    ('Строка1', [...], datetime.date(2017, 11, 3), datetime.date(2020, 11, 16), datetime.date(2020, 11, 16), 534531),
    ...,
    ('Строка999', [...], datetime.date(2018, 10, 31), datetime.date(2020, 8, 22), datetime.date(2020, 11, 13), 35448763)
]

Я хочу из нее сделать словарь с помощью defaultdict(list) и даты перевести в формат, пригодный для передачи в json. Однако, с помощью следующего кода:

r = defaultdict(list)
for i in response:
   tmp = i[1:]
   r[i[0]].append(tmp)

вместо такого словаря

defaultdict(<class 'list'>, {
'Строка1': [[...], datetime.date(2017, 11, 3), datetime.date(2020, 11, 16), datetime.date(2020, 11, 16), 534531],
..., 
'Строка999': [[...], datetime.date(2018, 10, 31), datetime.date(2020, 8, 22), datetime.date(2020, 11, 13), 35448763]})

у меня получается словарь со вложенным кортежем, который только мешает:

 defaultdict(<class 'list'>, {
'Строка1': [([...], datetime.date(2017, 11, 3), datetime.date(2020, 11, 16), datetime.date(2020, 11, 16), 534531)],
     ..., 
'Строка999': [([...], datetime.date(2018, 10, 31), datetime.date(2020, 8, 22), datetime.date(2020, 11, 13), 35448763)]})

Таким образом, мне сейчас непонятны две вещи: как модифицировать код, чтобы не было вложенного кортежа, и как изменить даты, чтобы их принимал json?

Update: решилось все заменой метода append на extend и преобразованием дат в строку. Код выглядит так:

r = defaultdict(list)
for i in response:
    tmp = list(i[1:])
    r[i[0]].extend(tmp)
for i in r.values():
    i[1] = str(i[1])
    i[2] = str(i[2])
    i[3] = str(i[3])

Ответы (0 шт):