Nano Hash - криптовалюты, майнинг, программирование

Экспорт CSV Unicode в Python с использованием пирамиды

Я пытаюсь экспортировать mongodb с символами, отличными от ascii, в формат 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 первое имя показывает , когда я использую печать, оно тоже показывает . Однако, когда я использовал Excel, чтобы открыть его, он показывает случайные вещи - ¾…

Однако, когда я попытался просмотреть его в оболочке

$ more member-20130227141550.csv

Ему удалось правильно отобразить не ascii-символ.

Как мне исправить эту проблему?


  • Может быть, вы можете попробовать что-то упомянутое в этом вопросе 27.02.2013
  • Или вы можете использовать unicodecsv для выполнения этой работы, unicodecsv, поскольку внутренний модуль CSV Python не поддерживает юникод. 27.02.2013
  • Excel интерпретирует файлы CSV в соответствии с текущими языковыми настройками компьютера. Он не распознает UTF-8 и вместо этого с радостью неверно интерпретирует данные как другую кодировку. Решение: ориентируйте свою кодировку CSV на тех, кто собирается ее использовать. 27.02.2013

Ответы:


1

Я не специалист по Windows, поэтому я не уверен, может ли проблема быть в вашем коде или в том, что Excel просто плохо обрабатывает символы, отличные от ascii. Но я заметил, что вы пишете свой файл с помощью модуля python csv, который печально известен своими головными болями с юникодом .

Другие пользователи сообщают об успешном использовании unicodecsv в качестве замены модуля csv. Возможно, вы могли бы попробовать добавить этот модуль в качестве средства записи csv и посмотреть, исчезнет ли ваша проблема волшебным образом.

27.02.2013
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..