我正在尝试将包含非ascii字符的mongodb导出为csv格式。 现在,我在研究金字塔金字塔.反应. 在
from pyramid.response import Response
from mycart.Member import Member
@view_config(context="mycart:resources.Member", name='', request_method="POST", permission = 'admin')
def member_export( context, request):
filename = 'member-'+time.strftime("%Y%m%d%H%M%S")+".csv"
download_path = os.getcwd() + '/MyCart/mycart/static/downloads/'+filename
member = Members(request)
my_list = [['First Name,Last Name']]
record = member.get_all_member( )
for r in record:
mystr = [ r['fname'], r['lname']]
my_list.append(mystr)
with open(download_path, 'wb') as f:
fileWriter = csv.writer(f, delimiter=',',quotechar='|', quoting=csv.QUOTE_MINIMAL)
for l in my_list:
print(l)
fileWriter.writerow(l)
size = os.path.getsize(download_path)
response = Response(content_type='application/force-download', content_disposition='attachment; filename=' + filename)
response.app_iter = open(download_path , 'rb')
response.content_length = size
return response
在mongoDB中,first name显示王
,当我使用print时,它也显示王
。然而,当我用excel打开它时,它显示了随机的东西
但是,当我试图在shell中查看它时
^{pr2}$它成功地显示了非ascii字符。在
我该如何纠正这个问题?在
我不是Windows用户,所以我不确定问题是出在你的代码上还是excel没有很好地处理非ascii字符。但是我注意到您正在用python ^{} 模块编写文件,它是notorious for headaches with unicode。在
其他用户报告成功地使用^{} 替代csv模块。也许你可以试着以csv作家的身份加入这个模块,看看你的问题是否神奇地消失了。在
相关问题 更多 >
编程相关推荐