xml-rpc - adodb - None type - DateTime type

dcrespo dcrespo at gmail.com
Fri Oct 28 14:54:35 CEST 2005


Hi to all,

I have functions defined in an xml-rpc server. Some functions query to
a Postgres database (using adodb) and return its recordset. So, if some
xml-rpc client runs the mentioned function, it will retrieve the
recordset. The problem is that if a retrieved field has the Null value
or the Date value (DateTime Database format), then, the retrieved
recordset in the python program will have the 'None' value or the
DateTime type object value.

xml-rpc isn't able to accept any type of value, so I have to solve it.

I can replace all None values with the string 'Null', there's no
problem, but I can't detect the DateTime type object I retrieve from
the database.

I have something like this:
def xmlrpc_function():
    conn = adodb.NewADOConnection('postgres')
    conn.Connect(host,user,password,database)
    rs = conn.Exec("select * from table")
    result = []
    i = 0
    while not rs.EOF:
        row = rs.GetRowAssoc(False)
        for key, value in row.items():
            if value==None:
                row[key]='Null'
        result.append(row)
        i = i + 1
        rs.MoveNext()
    rs.Close()

    print result
    return result

The problem here is that if row[key] == <type 'DateTime' object
etc...>, then I don't know what to do for detect it and make the
appropriate change to string.

Console output:
[{'name': 'Null', 'date': <DateTime object for '2005-09-01 00:00:00.00'
at 1515f60>}]

If you consult the python manual, you'll see that there's no 'DateTime'
type object, so I can't do something like:

if value==DateTimeType:
    ...

I only need to know which type of data is a field for make the change
according to what can I pass through the xml-rpc.

Any help?

Thanks




More information about the Python-list mailing list