如何读取Google通讯录csv文件?

时间:2018-11-27 10:31:53

标签: python python-3.x csv google-contacts

我将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 :(得分:0)

您可以使用Pandas库来尝试它,这是我以前读取csv文件的方式。

import pandas as pd

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

我也发现了这个link也许可以为您提供更多帮助。