you could create a method on the Boreholes mapper to convert an
instance to geojson (which I assume to be some sort of dictionary):

class Boreholes(mybase):
    ...
    def geojson(self):
        return dict([(attr, getattr(self, attr, None)) for attr in
['latitude', 'longitude', .. whatever else there is in geojson ...]])

On Wed, Aug 29, 2012 at 1:34 PM, Gery . <gameji...@hotmail.com> wrote:
>
>
> That was really helpful Robert, it works nicely, how could I modify this
> code to get geojson format? is it possible in this way or is there a better
> approach?
>
>
>
> __________________________________________________________________________________________
> Piensa en el medio ambiente - mantenlo en la pantalla. NO lo imprimas si NO
> es necesario.
> Think green - keep it on the screen. Do NOT print if it is NOT necessary.
> Denken Sie an die Umwelt - bewahren Sie es auf dem Bildschirm. Drucken Sie
> NICHT, wenn es NICHT notwendig ist.
>
>
>> Date: Wed, 29 Aug 2012 13:28:44 +0200
>> Subject: Re: [sqlalchemy] __main__ error
>> From: xrotw...@googlemail.com
>> To: sqlalchemy@googlegroups.com
>>
>> for borehole in alldata:
>> for attr in sorted(filter(lambda a: not a.startswith('_'),
>> dir(borehole))):
>> print attr, getattr(borehole, attr)
>>
>> could do the trick
>>
>> On Wed, Aug 29, 2012 at 1:24 PM, Gery . <gameji...@hotmail.com> wrote:
>> >
>> > thanks Robert, using your suggestion I get:
>> >
>> > ['__class__', '__delattr__', '__dict__', '__doc__', '__getattribute__',
>> > '__hash__', '__init__', '__module__', '__new__', '__reduce__',
>> > '__reduce_ex__', '__repr__', '__setattr__', '__str__', '__weakref__',
>> > '_sa_class_manager', '_sa_instance_state', u'comments', u'core_rec_m',
>> > u'fid', u'geom', u'h_f_mwm2', u'id', u'latitude', u'longitude',
>> > u'max_pen_m', u'source', u'station', u'survey', u't_g_ckm1', u'type',
>> > u'w_depth_m']
>> >
>> > so you were right, but one question, when I use:
>> >
>> >
>> >
>> > **************************************************************************************************************************************************
>> > # starting with ORM: declarative base class [catalog of classes mapped
>> > to
>> > database tables relative to this base]
>> > mybase = declarative_base(metadata=mymetadata)
>> >
>> > # defining classes to be mapped
>> > class Boreholes(mybase):
>> > __tablename__ = 'boreholes_point_wgs84'
>> > __table_args__ = {'autoload':True}
>> >
>> > def __init__ (self, id, fid, longitude, latitude, w_depth_m,
>> > station, type, survey, source, max_pen_m, core_rec_m, t_g_ckm1,
>> > h_f_mwm2,
>> > comments):
>> > self.id = id
>> > self.fid = fid
>> > self.longitude = longitude
>> > self.latitude = latitude
>> > self.w_depth_m = w_depth_m
>> > self.station = station
>> > self.type = type
>> > self.survey = survey
>> > self.source = source
>> > self.max_pen_m = max_pen_m
>> > self.core_rec_m = core_rec_m
>> > self.t_g_ckm1 = t_g_ckm1
>> > self.h_f_mwm2 = h_f_mwm2
>> > self.comments = comments
>> >
>> > def __repr__ (self):
>> > return "Boreholes(%s, %s, %s, %s, %s, %s, %s, %s, %s, %s,
>> > %s, %s, %s, %s)" % (self.id, self.fid, self.longitude, self.latitude,
>> > self.w_depth_m, self.station, self.type, self.survey, self.source,
>> > self.max_pen_m, self.core_rec_m, self.t_g_ckm1, self.h_f_mwm2,
>> > self.comments)
>> >
>> > **************************************************************************************************************************************************
>> >
>> > whit the same print.alldata I can output all the rows, but in this way I
>> > don't know how to make the mapper(Boreholes, boreholes) I used in the
>> > first
>> > place. Is it possible to print all the rows with my original code?
>> >
>> > Thanks,
>> >
>> > Gery
>> >
>> >
>> >
>> >
>> >
>> >
>> > __________________________________________________________________________________________
>> > Piensa en el medio ambiente - mantenlo en la pantalla. NO lo imprimas si
>> > NO
>> > es necesario.
>> > Think green - keep it on the screen. Do NOT print if it is NOT
>> > necessary.
>> > Denken Sie an die Umwelt - bewahren Sie es auf dem Bildschirm. Drucken
>> > Sie
>> > NICHT, wenn es NICHT notwendig ist.
>> >
>> >
>> >> Date: Wed, 29 Aug 2012 13:05:18 +0200
>> >> Subject: Re: [sqlalchemy] __main__ error
>> >> From: xrotw...@googlemail.com
>> >> To: sqlalchemy@googlegroups.com
>> >>
>> >> doesn't look like an error to me. It's just the result of your
>> >>
>> >> print alldata
>> >>
>> >> call. It depends on Postgis which attributes are available on the
>> >> Borehole instances, but you could use
>> >>
>> >> print dir(alldata[0])
>> >>
>> >> to get an idea about what is available.
>> >>
>> >> On Wed, Aug 29, 2012 at 12:37 PM, Gery . <gameji...@hotmail.com> wrote:
>> >> >
>> >> > Hello,
>> >> >
>> >> > I'm quite new in SA and I'm having some problems with a script. After
>> >> > running the script, I'm getting this error:
>> >> >
>> >> > [<__main__.Boreholes object at 0xb7a2958c>, <__main__.Boreholes
>> >> > object
>> >> > at
>> >> > 0xb7a2962c>, <__main__.Boreholes object at 0xb7a2966c>,
>> >> > <__main__.Boreholes
>> >> > object at 0xb7a296cc>, <__main__.Boreholes object at 0xb7a2972c>,
>> >> > <__main__.Boreholes object at 0xb7a2978c>, <__main__.Boreholes object
>> >> > at
>> >> > 0xb7a297ec>, <__main__.Boreholes object at 0xb7a2984c>,
>> >> > <__main__.Boreholes
>> >> > object at 0xb7a298ac>, <__main__.Boreholes object at 0xb7a2990c>,
>> >> > <__main__.Boreholes object at 0xb7a2996c>, <__main__.Boreholes object
>> >> > at
>> >> > 0xb7a299cc>, <__main__.Boreholes object at 0xb7a29a2c>,
>> >> > <__main__.Boreholes
>> >> > object at 0xb7a29a8c>, <__main__.Boreholes object at 0xb7a29aec>,
>> >> > <__main__.Boreholes object at 0xb7a29b4c>, <__main__.Boreholes object
>> >> > at
>> >> > 0xb7a29bac>, <__main__.Boreholes object at 0xb7a29c2c>,
>> >> > <__main__.Boreholes
>> >> > object at 0xb7a29cac>, <__main__.Boreholes object at 0xb7a29d2c>,
>> >> > <__main__.Boreholes object at 0xb7a29dac>, <__main__.Boreholes object
>> >> > at
>> >> > 0xb7a29e2c>, <__main__.Boreholes object at 0xb7a29eac>,
>> >> > <__main__.Boreholes
>> >> > object at 0xb7a29f2c>, <__main__.Boreholes object at 0xb7a29fac>,
>> >> > <__main__.Boreholes object at 0xb7a3504c>, <__main__.Boreholes object
>> >> > at
>> >> > 0xb7a350cc>, <__main__.Boreholes object at 0xb7a3514c>,
>> >> > <__main__.Boreholes
>> >> > object at 0xb7a351cc>, <__main__.Boreholes object at 0xb7a3524c>,
>> >> > <__main__.Boreholes object at 0xb7a352cc>, <__main__.Boreholes object
>> >> > at
>> >> > 0xb7a3534c>, <__main__.Boreholes object at 0xb7a353cc>,
>> >> > <__main__.Boreholes
>> >> > object at 0xb7a3544c>, <__main__.Boreholes object at 0xb7a354cc>,
>> >> > <__main__.Boreholes object at 0xb7a3554c>, <__main__.Boreholes object
>> >> > at
>> >> > 0xb7a355cc>, <__main__.Boreholes object at 0xb7a3564c>,
>> >> > <__main__.Boreholes
>> >> > object at 0xb7a356cc>, <__main__.Boreholes object at 0xb7a3574c>,
>> >> > <__main__.Boreholes object at 0xb7a357cc>, <__main__.Boreholes object
>> >> > at
>> >> > 0xb7a3584c>, <__main__.Boreholes object at 0xb7a358cc>,
>> >> > <__main__.Boreholes
>> >> > object at 0xb7a3594c>, <__main__.Boreholes object at 0xb7a359cc>,
>> >> > <__main__.Boreholes object at 0xb7a35a4c>, <__main__.Boreholes object
>> >> > at
>> >> > 0xb7a35acc>, <__main__.Boreholes object at 0xb7a35b4c>,
>> >> > <__main__.Boreholes
>> >> > object at 0xb7a35bcc>, <__main__.Boreholes object at 0xb7a35c4c>,
>> >> > <__main__.Boreholes object at 0xb7a35ccc>]
>> >> >
>> >> >
>> >> > the script is here:
>> >> >
>> >> >
>> >> >
>> >> > *************************************************************************************************************
>> >> >
>> >> > # import things to be used
>> >> > from sqlalchemy import create_engine, MetaData, Table
>> >> > from sqlalchemy.orm import mapper, sessionmaker
>> >> >
>> >> > # connecting to database engine
>> >> > myengine =
>> >> > create_engine('postgresql://postgres:pass@localhost:5432/mop',
>> >> > echo=False)
>> >> >
>> >> > # MetaData: describing the database schema
>> >> > mymetadata = MetaData(myengine)
>> >> >
>> >> > # load existing tables in postgis database
>> >> > boreholes = Table('boreholes_point_wgs84', mymetadata, autoload=True)
>> >> >
>> >> > # defining empty classes to be mapped to existing tables
>> >> > class Boreholes(object):
>> >> > pass
>> >> >
>> >> > # mapping empty classes to existing tables [ie. ORM]
>> >> > Boreholesmapper = mapper(Boreholes, boreholes)
>> >> >
>> >> > # session operations [finding data, adding data, modifying data and
>> >> > deleting
>> >> > data]
>> >> > Session = sessionmaker(bind=myengine)
>> >> > mysession = Session()
>> >> >
>> >> > # queries
>> >> > alldata = mysession.query(Boreholes).all()
>> >> > print alldata
>> >> >
>> >> >
>> >> >
>> >> > *************************************************************************************************************
>> >> >
>> >> > I'm working with python2.4 and SA 0.7.8 in rhel5 (32-bit).
>> >> >
>> >> > Any hint is appreciated,
>> >> >
>> >> > Best regards,
>> >> >
>> >> > Gery
>> >> >
>> >> >
>> >> >
>> >> >
>> >> >
>> >> >
>> >> >
>> >> >
>> >> >
>> >> > __________________________________________________________________________________________
>> >> > Piensa en el medio ambiente - mantenlo en la pantalla. NO lo imprimas
>> >> > si
>> >> > NO
>> >> > es necesario.
>> >> > Think green - keep it on the screen. Do NOT print if it is NOT
>> >> > necessary.
>> >> > Denken Sie an die Umwelt - bewahren Sie es auf dem Bildschirm.
>> >> > Drucken
>> >> > Sie
>> >> > NICHT, wenn es NICHT notwendig ist.
>> >> >
>> >> > --
>> >> > You received this message because you are subscribed to the Google
>> >> > Groups
>> >> > "sqlalchemy" group.
>> >> > To post to this group, send email to sqlalchemy@googlegroups.com.
>> >> > To unsubscribe from this group, send email to
>> >> > sqlalchemy+unsubscr...@googlegroups.com.
>> >> > For more options, visit this group at
>> >> > http://groups.google.com/group/sqlalchemy?hl=en.
>> >>
>> >> --
>> >> You received this message because you are subscribed to the Google
>> >> Groups
>> >> "sqlalchemy" group.
>> >> To post to this group, send email to sqlalchemy@googlegroups.com.
>> >> To unsubscribe from this group, send email to
>> >> sqlalchemy+unsubscr...@googlegroups.com.
>> >> For more options, visit this group at
>> >> http://groups.google.com/group/sqlalchemy?hl=en.
>> >>
>> >
>> > --
>> > You received this message because you are subscribed to the Google
>> > Groups
>> > "sqlalchemy" group.
>> > To post to this group, send email to sqlalchemy@googlegroups.com.
>> > To unsubscribe from this group, send email to
>> > sqlalchemy+unsubscr...@googlegroups.com.
>> > For more options, visit this group at
>> > http://groups.google.com/group/sqlalchemy?hl=en.
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "sqlalchemy" group.
>> To post to this group, send email to sqlalchemy@googlegroups.com.
>> To unsubscribe from this group, send email to
>> sqlalchemy+unsubscr...@googlegroups.com.
>> For more options, visit this group at
>> http://groups.google.com/group/sqlalchemy?hl=en.
>>
>
> --
> You received this message because you are subscribed to the Google Groups
> "sqlalchemy" group.
> To post to this group, send email to sqlalchemy@googlegroups.com.
> To unsubscribe from this group, send email to
> sqlalchemy+unsubscr...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/sqlalchemy?hl=en.

-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to sqlalchemy@googlegroups.com.
To unsubscribe from this group, send email to 
sqlalchemy+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en.

Reply via email to