gpt4 book ai didi

Python CSV 编码

转载 作者:行者123 更新时间:2023-11-28 16:47:14 25 4
gpt4 key购买 nike

我正在编写一个小脚本,允许我将我的 Facebook 联系人的电子邮件地址导入 GMail/Android。我的输入文件包含 unicode 字符,例如:Jasmin L\u00f3pez。生成的 CSV 输出文件如下所示:

Andr\u00e9 Zzz,,,,,,,,,,,,,,,,,,,,,,,,,,fbcontacts ::: * My Contacts,* Home,zzz@yahoo.com
Andr\u00e9ia Ggg,,,,,,,,,,,,,,,,,,,,,,,,,,fbcontacts ::: * My Contacts,* Home,ggg@hotmail.com
Andr\u00e9s Bbb,,,,,,,,,,,,,,,,,,,,,,,,,,fbcontacts ::: * My Contacts,* Home,bbb@gmail.com

如您所见,我遇到了编码问题。我正在创建一个 Google 联系人 CSV 文件,但我需要正确显示姓名。我正在使用此函数编写 CSV:

def writecsv(self):
if self.outfile is not '':
#fh = open(self.outfile, 'wb')
#fh = codecs.open(self.outfile, "wb", "utf-8")
fh = codecs.open(self.outfile, 'wb', encoding="latin-1")
else:
fh = sys.stdout

csvhdlr = csv.writer(fh, quotechar='"', quoting=csv.QUOTE_MINIMAL)
csvhdlr.writerow("Name,Given Name,Additional Name,Family Name,Yomi Name,Given Name Yomi,Additional Name Yomi,Family Name Yomi,Name Prefix,Name Suffix,Initials,Nickname,Short Name,Maiden Name,Birthday,Gender,Location,Billing Information,Directory Server,Mileage,Occupation,Hobby,Sensitivity,Priority,Subject,Notes,Group Membership,E-mail 1 - Type,E-mail 1 - Value".split(','))
for contact in self.clist:
#csvhdlr.writerow(dict((vname, vtype, vnotes, vstereotype, vauthor, valias, vgenfile.encode('utf-8')) for vname, vtype, vnotes, vstereotype, vauthor, valias, vgenfile in row.iteritems()))
row = contact.fullname + ',,,,,,,,,,,,,,,,,,,,,,,,,,fbcontacts ::: * My Contacts,* Home,' + contact.email
csvhdlr.writerow(row.split(','))

有什么想法吗?我对 python 很陌生,每次我必须使用编码时,它都无法正常工作 =(

非常感谢您的帮助!

最佳答案

如果我没理解错的话,你的文件不包含高位 unicode 字符;它只包含代表高 unicode 字符的 unicode 转义序列,如“\u00f3”。如果您的文件实际上包含字符串“Jasmin L\u00f3pez”(带有文字反斜杠和 u),那么您需要在写入之前将其解码为实际的 unicode 字符。查看 unicode_escape 编解码器。

>>> x = b"\u00f3"
>>> print x
\u00f3
>>> print x.decode('unicode_escape')
ó

关于Python CSV 编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12536038/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com