Ответы пользователя по тегу CSV
  • Как записать из бд в csv?

    @nirvimel
    Вероятно вам нужен другой диалект CSV. Попробуйте поиграться с параметром dialect в csv.writer, попробуйте значения csv.excel, csv.excel_tab, csv.unix_dialect или текстовые строки типа "excel". Формат выходного CSV будет при этом меняться. Пробуйте пока не получатся раздельные ячейки.
    Если не поможет, то придется вручную задавать параметры delimiter и quotechar.
    Ответ написан
    1 комментарий
  • Клиент хочет автоматизировать загрузку каталога на сайт через CSV, как это сделать если есть сложные описания?

    @nirvimel
    Вот qwerty.csv с длинными строками, разметкой, тегами и кавычками. Приготовлен он в LibreOffice Calk (пусть будет Excel). При сохранении заданны параметры: "разделитель полей": ,, "разделитель текста": ", "выделять кавычками все текстовые ячейки".
    1,"Тайтл","<h1 itemprop=""name "" class=""question__title"">
      Клиент хочет автоматизировать загрузку каталога на сайт через CSV, как это сделать если есть сложные описания?</h1>"
    2,"Теги","<ul class=""tags-list"">
                  <li class=""tags-list__item subscribed tag_158794"">
              <a href=""https://toster.ru/tag/csv"">
                Csv          </a>
            </li>
                        <li class=""tags-list__item subscribed tag_152707"">
              <a href=""https://toster.ru/tag/программирование"">
                Программирование          </a>
            </li>
                        <li class=""tags-list__item  tag_260"">
              <a href=""https://toster.ru/tag/php"">
                PHP          </a>
            </li>
                    </ul>"

    Вот скрипт на Python (извините, PHP на сегодня закончился), который выводит в консоль содержимое qwerty.csv построчно, раздельно все поля (№, Name, Description).
    import csv
    with open('qwerty.csv', 'rb') as csvfile:
        for row in csv.reader(csvfile, delimiter=r',', quotechar=r'"'):
            print ("# %s\nName: %s\nDescription: %s\n" % tuple(row))

    Как видите все обрабатывается корректно, включая большие куски HTML, никакие строки и поля не смешиваются:
    # 1
    Name: Тайтл
    Description: <h1 itemprop="name " class="question__title">
      Клиент хочет автоматизировать загрузку каталога на сайт через CSV, как это сделать если есть сложные описания?</h1>
    # 2
    Name: Теги
    Description: <ul class="tags-list">
                  <li class="tags-list__item subscribed tag_158794">
              <a href="https://toster.ru/tag/csv">
                Csv          </a>
            </li>
                        <li class="tags-list__item subscribed tag_152707">
              <a href="https://toster.ru/tag/программирование">
                Программирование          </a>
            </li>
                        <li class="tags-list__item  tag_260">
              <a href="https://toster.ru/tag/php">
                PHP          </a>
            </li>
                    </ul>
    Ответ написан
    Комментировать