Friday, March 13, 2009

Django serialization - Deserialization

I have a table
desc property;
+--------------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------------+--------------+------+-----+---------+----------------+
| property_id | int(11) | NO | PRI | NULL | auto_increment |
| property_name | varchar(30) | NO | | NULL | |
| property_address_1 | varchar(120) | NO | | NULL | |
| property_address_2 | varchar(120) | YES | | NULL | |
| property_city | varchar(30) | NO | | NULL | |
| property_state | varchar(30) | NO | | NULL | |
| property_pincode | int(7) | NO | | NULL | |
| property_country | varchar(30) | NO | | NULL | |
| property_user_id | int(11) | NO | MUL | NULL | |
| property_price | int(20) | NO | | NULL | |
+--------------------+--------------+------+-----+---------+----------------+

Serialize

python manage.py shell
Python 2.5.2 (r252:60911, Oct 5 2008, 19:24:49)
>>> from users.models import Property
>>> from django.core import serializers

>>> json = serializers.serialize("json", Property.objects.filter(pk=2)
>>> print json
[{"pk": 1, "model": "users.property", "fields": {"property_user_id": 1, "property_state": "aa", "property_country": "aa", "property_pincode": 323, "property_city": "aa", "property_price": 1, "property_address_1": "aa", "property_name": "aa", "property_address_2": "aa"}}]



Deserialize
>>> json = '[{"pk": 2, "model": "users.property", "fields": {"property_user_id": 2, "property_state": "aa", "property_country": "aa", "property_pincode": 323, "property_city": "aa", "property_price": 1, "property_address_1": "aa", "property_name": "aa", "property_address_2": "aa"}}]'

>>> for obj in serializers.deserialize("json", json):
... obj.save()


I finally dint use it because I dint know how to convert a UTF encoded dictionary to string.. shame on me..!!

No comments: