<html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    Hi Alexander. Thank you so lot ! I'll try to_dict() method soon and
    i think that's what i need. <br>
    You have a really rapid development workflow there, guys !<br>
    <br>
    <br>
    <div class="moz-cite-prefix">08.08.2014 22:16, Alexander Kozlovsky
      пишет:<br>
    </div>
    <blockquote
cite="mid:CAGM6z1tOH7dO844UgiVfdtu-NuLpJoe7BBQROVD3EtaLBLNmng@mail.gmail.com"
      type="cite">
      <div dir="ltr">Hi Vadim!<br>
        <br>
        I'd like to inform you that I just added the to_dict() method,
        which can be useful for converting Pony objects to CSV, JSON or
        any other format. I want to show you how this method can be
        used.<br>
        <br>
        At first, let's import a module from Pony ORM examples and get
        an object which we want to convert to dictionary:<br>
        <br>
            >>> from pony.orm.examples.presentation import *<br>
            >>> populate_database()<br>
            >>> s = Student[1]<br>
        <br>
        Now we can convert this object to a dictionary by the following
        way:<br>
        <br>
            >>> s.to_dict()<br>
        <div>    {'group': 101, 'name': u'John Smith', 'dob':
          datetime.date(1991, 3, 20), 'gpa': 3.0, 'tel': '123-456',
          'id': 1}<br>
        </div>
        <br>
        If we want to extract specific fields only, we can specify the
        list of attributes:<br>
        <br>
            >>> s.to_dict(['id', 'name', 'group'])
        <div>    {'group': 101, 'id': 1, 'name': u'John Smith'}</div>
        <br>
        or<br>
        <br>
            >>> s.to_dict("id name group")
        <div>    {'group': 101, 'id': 1, 'name': u'John Smith'}</div>
        <br>
        By default the related objects are represented by its primary
        keys, but it is possible to get full objects by specifying
        `related_objects=True`. This way you can convert related objects
        recursively:<br>
        <br>
        <div>    >>> s.to_dict(['id', 'name', 'group'],
          related_objects=True)</div>
        <div>    {'group': Group[101], 'id': 1, 'name': u'John Smith'}<br>
          <br>
          By default, collections and lazy attributes (such as BLOBs)
          are not included to the to_dict() result. It can be changed by
          specifying `with_collections=True` and `with_lazy=True`.<br>
          <br>
          Now I want to show how you can store database data to CSV
          format using standard python csv module and new to_dict()
          method. Let's store the content of the Student table to the
          CSV file:<br>
          <br>
              from pony.orm.examples.presentation import Student<br>
              import csv<br>
              fields = ['id', 'name', 'group', 'gpa', 'tel']<br>
              csv_file = open('students.csv', 'w')<br>
              writer = csv.DictWriter(csv_file, fields)<br>
              writer.writeheader()<br>
              for s in Student.select():<br>
                  writer.writerow(s.to_dict(fields))<br>
              csv_file.close()<br>
          <br>
          If you want to export all entity attributes in the same order
          as they defined, you can write universal function like this:</div>
        <br>
        <div>    def export_to_csv(entity, filename):</div>
        <div>        fields = [ <a moz-do-not-send="true"
            href="http://attr.name">attr.name</a> for attr in
          entity._attrs_with_columns_ if not attr.lazy ]</div>
        <div>        with open(filename, 'wb') as f:</div>
        <div>            writer = csv.DictWriter(f, fields)</div>
        <div>            writer.writeheader()</div>
        <div>            for obj in entity.select():</div>
        <div>                writer.writerow(obj.to_dict(fields))</div>
        <div><br>
          Then you can use this function in the following way:<br>
          <br>
              export_to_csv(Student, 'students.csv')<br>
        </div>
        <br>
        to_dict() method is available in Pony ORM development version
        which can be taken from GitHub:<br>
        <a moz-do-not-send="true" href="https://github.com/ponyorm/pony">https://github.com/ponyorm/pony</a><br>
        <br>
        <div>We plan to release the new version Pony ORM 0.5.2 on Monday
          which includes to_dict() method, and you will be able to
          install it from PyPI using<br>
          pip install pony --upgrade<br>
          <br>
          <br>
          Regards,<br>
          Alexander<br>
          <br>
        </div>
      </div>
      <div class="gmail_extra"><br>
        <br>
        <div class="gmail_quote">On Mon, Aug 4, 2014 at 6:53 PM, Вадим
          Бажов <span dir="ltr"><<a moz-do-not-send="true"
              href="mailto:vadim@ideco.ru" target="_blank">vadim@ideco.ru</a>></span>
          wrote:<br>
          <blockquote class="gmail_quote" style="margin:0 0 0
            .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi, folks
            !<br>
            I created and filled an sqlite db with data using Pony ORM.
            It's clean and easy.<br>
            Now i need to be able to convert the database to windows
            Excell-friendly representation for the hiegher autority.<br>
            As i suppose, the csv is the most easy and suitable file
            format for that case.<br>
            So, please, share your experiences with me what is the best
            way to do such an export with Pony? If pony hasn't such
            export ability (what i didn't find), tell me what tools do
            you usually use for that task?<br>
            <br>
            -- <br>
            С уважением,<br>
            Бажов Вадим,<br>
            Инженер отдела технической поддержки,<br>
            Компания Айдеко<br>
            --<br>
            Телефоны: +7 (495) 987-32-70; +7 (495) 662-87-34 (тех.
            поддержка); +7 (343) 345-15-75; Факс: +7 (343) 383-75-13<br>
            <br>
            Электронная почта:<br>
            Вопросы по приобретению: <a moz-do-not-send="true"
              href="mailto:sales@ideco.ru" target="_blank">sales@ideco.ru</a><br>
            Технические вопросы: <a moz-do-not-send="true"
              href="mailto:support@ideco.ru" target="_blank">support@ideco.ru</a><br>
            Партнерство: <a moz-do-not-send="true"
              href="mailto:partners@ideco.ru" target="_blank">partners@ideco.ru</a><br>
            Общие вопросы: <a moz-do-not-send="true"
              href="mailto:info@ideco.ru" target="_blank">info@ideco.ru</a><br>
            <br>
            Сайт: <a moz-do-not-send="true" href="http://www.ideco.ru/"
              target="_blank">http://www.ideco.ru/</a><br>
            Форум: <a moz-do-not-send="true"
              href="http://www.ideco.ru/forum/" target="_blank">http://www.ideco.ru/forum/</a><br>
            <br>
            _______________________________________________<br>
            ponyorm-list mailing list<br>
            <a moz-do-not-send="true"
              href="mailto:ponyorm-list@ponyorm.org" target="_blank">ponyorm-list@ponyorm.org</a><br>
            <a moz-do-not-send="true"
              href="/ponyorm-list"
              target="_blank">/ponyorm-list</a><br>
          </blockquote>
        </div>
        <br>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
ponyorm-list mailing list
<a class="moz-txt-link-abbreviated" href="mailto:ponyorm-list@ponyorm.org">ponyorm-list@ponyorm.org</a>
<a class="moz-txt-link-freetext" href="/ponyorm-list">/ponyorm-list</a>
</pre>
    </blockquote>
    <br>
    <pre class="moz-signature" cols="72">-- 
С уважением,
Бажов Вадим,
Инженер отдела технической поддержки,
Компания Айдеко
--
Телефоны: +7 (495) 987-32-70; +7 (495) 662-87-34 (тех. поддержка); +7 (343) 345-15-75; Факс: +7 (343) 383-75-13 

Электронная почта: 
Вопросы по приобретению: <a class="moz-txt-link-abbreviated" href="mailto:sales@ideco.ru">sales@ideco.ru</a> 
Технические вопросы: <a class="moz-txt-link-abbreviated" href="mailto:support@ideco.ru">support@ideco.ru</a>
Партнерство: <a class="moz-txt-link-abbreviated" href="mailto:partners@ideco.ru">partners@ideco.ru</a> 
Общие вопросы: <a class="moz-txt-link-abbreviated" href="mailto:info@ideco.ru">info@ideco.ru</a>

Сайт: <a class="moz-txt-link-freetext" href="http://www.ideco.ru/">http://www.ideco.ru/</a>
Форум: <a class="moz-txt-link-freetext" href="http://www.ideco.ru/forum/">http://www.ideco.ru/forum/</a> 

</pre>
  </body>
</html>