Как прочитать CSV-файл Google Contacts?

WoJ спросил: 03 ноября 2018 в 08:51 в: python

Я экспортировал свои контакты Google в файл CSV и пытаюсь проанализировать его с помощью csv:

import csv
contacts = csv.DictReader(open('google.csv', 'rb'))
for c in contacts:
    print(c)

Это приводит к сбою с помощью csv.Error: iterator should return strings, not bytes (did you open the file in text mode?)

Следуя подсказке:

import csv
contacts = csv.DictReader(open('google.csv', 'r'))
for c in contacts:
    print(c)

теперь происходит сбой с _csv.Error: line contains NULL byte.

При просмотре деталей файла он выглядит странно, в том смысле, что NULL чередуется с нормальными знаками:

00000000  ff fe 4e 00 61 00 6d 00  65 00 2c 00 47 00 69 00  |..N.a.m.e.,.G.i.|
00000010  76 00 65 00 6e 00 20 00  4e 00 61 00 6d 00 65 00  |v.e.n. .N.a.m.e.|
00000020  2c 00 41 00 64 00 64 00  69 00 74 00 69 00 6f 00  |,.A.d.d.i.t.i.o.|
00000030  6e 00 61 00 6c 00 20 00  4e 00 61 00 6d 00 65 00  |n.a.l. .N.a.m.e.|
00000040  2c 00 46 00 61 00 6d 00  69 00 6c 00 79 00 20 00  |,.F.a.m.i.l.y. .|
00000050  4e 00 61 00 6d 00 65 00  2c 00 59 00 6f 00 6d 00  |N.a.m.e.,.Y.o.m.|
00000060  69 00 20 00 4e 00 61 00  6d 00 65 00 2c 00 47 00  |i. .N.a.m.e.,.G.|
00000070  69 00 76 00 65 00 6e 00  20 00 4e 00 61 00 6d 00  |i.v.e.n. .N.a.m.|

Это нормально для CSV файлы? И что еще более важно, есть ли стандартный способ их прочитать и записать (соблюдая этот стандарт)?


0 ответов