Конвертировать dict в csv

Я знаю, что это не лучший ответ, но если вы не можете получить работу с классом, это решение плана B.

В моем тестовом пути я добавил следующий интерфейс с реализацией по умолчанию для метода описанияMismatch.

package org.hamcrest;

/**
 * PATCH because there's something wrong with the classpath. Hamcrest should be higher than Mockito so that the BaseMatcher
 * implements the describeMismatch method, but it doesn't work for me. 
 */
public interface Matcher<T> extends SelfDescribing {

    boolean matches(Object item);

    default void describeMismatch(Object item, Description mismatchDescription) {
        mismatchDescription.appendDescriptionOf(this).appendValue(item);
    }

    @Deprecated
    void _dont_implement_Matcher___instead_extend_BaseMatcher_();
}
-1
задан akr 28 February 2019 в 06:20
поделиться

1 ответ

Вы можете использовать функцию DictWriter для этого:

import csv
import json

data = [{'MT': '500', 'FISC_YR': '1958', 'RETRIEVAL_ID': 1,'INDICATOR': 'I', 'CHANGED_ON': '20181012', 'ZNGED_AT': '102708', 'ZGED_BY': 'PT'},
        {'KT': '500', 'FISC_YEAR': '1958', 'RETRIEVAL_ID': 1,'INDICATOR': 'I', 'CHANGED_ON': '20181013', 'ZNGED_AT': '102709', 'ZGED_BY': 'PT'}]

data = json.loads((json.dumps(data).replace('KT', 'MT').replace('FISC_YR', 'FISC')))

with open('result.csv', 'w', newline='') as f:
    writer = csv.DictWriter(f, fieldnames=['MT', 'FISC', 'RETRIEVAL_ID', 'INDICATOR', 'CHANGED_ON', 'ZNGED_AT', 'ZGED_BY'])
    writer.writeheader()
    writer.writerows(data)

Выходной файл:

MT,FISC,RETRIEVAL_ID,INDICATOR,CHANGED_ON,ZNGED_AT,ZGED_BY
500,1958,1,I,20181012,102708,PT
500,1958,1,I,20181013,102709,PT
0
ответ дан Alderven 28 February 2019 в 06:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: