Python unicode 和 csv 中的数组打印问题

Python array printing in unicode and csv issue

dict1 是一个字典,对应的数组有 4 个样本元素,如下所示:

{u'OlpyplEJ_c_hFxyand_Wxw': [u'Inchin Bamboo Garden', u'Paradise Valley', 33.575816, -111.926234], 
u'_qvxFHGbnbrAPeWBVifJEQ': [u"Lenny's Sub Shop", u'Charlotte', 35.334993, -80.8129717], 
u's5yzZITWU_RcJzWOgjFecw': [u"Sergio's Italian Gardens", u'Las Vegas', 36.100414, -115.1265829]}

我正在使用 business_id 作为上述字典的关键字打印数据

print "%s,%s" % (dict1[jd['business_id']], re.sub('\n|\r', '', jd['text']))

示例输出为:

[u"P&G's Pamela's Diner", u'Pittsburgh', 40.451723, -79.932833], The food here is over the top excessively greasy. So greasy that it made me sick to my stomach before I was done eating my meal. My husband and I split the chocolate chip pancakes and a ham and cheese omelette with potatoes and toast on the side. Not only was everything in a pool of grease, but it seemed to be margarine...not even real butter. I will never eat here again. I am gagging even thinking about this meal let aloe eating it again.

我有两个问题,第一个,如何从数组中的 2 个输出字符串中删除 unicode 标记 u',我试过 str() 但它不起作用

第二个,当我导出为 .csv 文件时,'text' 中的逗号被拾取并将其拆分,我尝试在它周围使用 ' ' 但我还是无法理解出来

如有任何帮助,我们将不胜感激

您可以通过将 'unicode-escape' 传递给 unicode.encode() 方法对 unicode 进行编码来删除 u。你可以使用列表理解:

>>> l=[u"P&G's Pamela's Diner", u'Pittsburgh', 40.451723, -79.932833]
>>> [i.encode('unicode-escape') if isinstance(i,unicode) else i for i in l]
["P&G's Pamela's Diner", 'Pittsburgh', 40.451723, -79.932833]

关于你的第二个问题,因为 python 默认情况下会假定逗号作为分隔符。为了得到它,你可以为它定义一个服装定界符。

例如:

import csv
with open('file_name.csv', 'wb') as csvfile:
    spamwriter = csv.writer(csvfile, delimiter=' ')
    #do stuff

"u"表示一个unicode字符串。您正在打印一个 python 数组,其中包含 unicode 字符串,所以这就是放在控制台上的内容。决定你想要什么,例如 ', '.join(stuff)) 看起来不错。

对于导出为 CSV,如果没有看到你的 CSV 代码,我无法帮助你,但我强烈建议你使用 Python 的 csv 模块来处理 CSV 输入和输出并选择分隔符适合您的数据。