Я мало работал с json или dicts, но я знаю, что dict не заказан. Если вы хотите заказать, вам нужно переместить пары ключ / значение во что-то сортируемое, а затем отсортировать их.
Я не совсем уверен, что вы подразумеваете под "дубликатами"
Поскольку вы используете csv для печати, выходные данные будут разделены запятыми. Если вы хотите, чтобы значения печатались под заголовками столбцов, вам нужно получить длину каждого заголовка и каждого значения, установить длину ячейки на большее из них и добавить заполнение к более короткой строке перед записью в файл.
Дубликаты
Хорошо, я понял. Я не пытался сделать это с использованием списка, но это легко сделать с помощью циклов:
key_list = []
for key in items:
for k, v in visit_dict(key):
if k not in key_list: key_list.append(k)
Затем вы можете перебрать список ключей, чтобы получить значения от каждого ключа в элементах.