Как прочитать CSV-файл Google Contacts? - PullRequest
0 голосов
/ 27 ноября 2018

Я экспортировал свои контакты 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?И что еще более важно, есть ли стандартный способ их прочитать и записать (соблюдая этот стандарт)?

1 Ответ

0 голосов
/ 27 ноября 2018

Вы можете попробовать это, используя библиотеку Pandas, которую я использовал для чтения CSV-файлов.

import pandas as pd

contacts = pd.read_csv('google.csv', na_values=['NA'])

Также я нашел эту ссылку , которая, возможно, может помочь вам больше.

...