поведение читателя csv с None и пустой строкой

Я бы хотел отличитьNone и пустые строки при переходе назад и вперед между структурой данных Python и представлением csv с использованием Pythoncsv модуль.

Моя проблема в том, что когда я бегу:

import csv, cStringIO

data = [['NULL/None value',None],
        ['empty string','']]

f = cStringIO.StringIO()
csv.writer(f).writerows(data)

f = cStringIO.StringIO(f.getvalue())
data2 = [e for e in csv.reader(f)]

print "input : ", data
print "output: ", data2

Я получаю следующий вывод:

input :  [['NULL/None value', None], ['empty string', '']]
output:  [['NULL/None value', ''], ['empty string', '']]

Конечно, я мог бы поиграть сdata а такжеdata2 различатьNone и пустые строки с такими вещами, как:

data = [d if d!=None else 'None' for d in data]
data2 = [d if d!='None' else None for d in data2]

Но это частично отразило бы мой интерес кcsv модуль (быстрая десериализация / сериализация реализована в C, особенно когда вы имеете дело с большими списками).

Есть лиcsv.Dialect или параметры дляcsv.writer а такжеcsv.reader это позволило бы им различать'' а такжеNone в этом случае использования?

Если нет, будет ли интерес к внедрению патча дляcsv.writer чтобы включить этот вид туда и обратно? (ВозможноDialect.None_translate_to параметр по умолчанию равен'' для обеспечения обратной совместимости)

Ответы на вопрос(5)

Ваш ответ на вопрос