Nasıl Python nesnesine JSON verileri dönüştürmek için
Python Python Nesnesine JSON verileri dönüştürmek için kullanmak istiyorum.
Benim Veritabanında saklamak istiyorum Facebook API, JSON veri nesneleri alıyorum.
Benim şimdiki Görünümü Django ( python ) ( requset.JSON içeren YAZI )->
response = request.POST
user = FbApiUser(user_id = response['id'])
user.name = response['name']
user.username = response['username']
user.save()
Bu iyi çalışıyor, ama ne kadar karmaşık Json veri nesneleri yapmalıyım?
Eğer bir şekilde kolay kullanım için bir python nesne içine bu JSON nesnesi dönüştürmek getirirseniz çok daha iyi olmaz mı?
CEVAP
Onay bölüm "" json modülü docs (Python v2 http://docs.python.org/library/json.html. kod çözme JSON nesne Uzmanlaşmış etiketli 7.3 )- özel nesne çözme üzerine bir bölüm var. Özel Python bir tür içine bir JSON nesnesi kodunu çözmek için kullanabilirsiniz.
İşte size bir örnek:
class User(object):
def __init__(self, name, username):
self.name = name
self.username = username
import json
def object_decoder(obj):
if '__type__' in obj and obj['__type__'] == 'User':
return User(obj['name'], obj['username'])
return obj
json.loads('{"__type__": "User", "name": "John Smith", "username": "jsmith"}', object_hook=object_decoder)
print type(User)
>>>> <class '__restricted__.User'>
Güncelleme
Eğer json ile bir sözlük veri erişmek istiyorsanız Bu modül yapın:
user = json.loads('{"__type__": "User", "name": "John Smith", "username": "jsmith"}')
print user['name']
print user['username']
Sadece sıradan bir sözlük.
Nasıl dize Python küçük harfe dönüştür...
Nasıl ruby karma bir nesneyi JSON dönü...
Nasıl Unicode olanları yerine string N...
Nasıl üstesinden gelmek için "dat...
Nasıl python tamsayılar dizeleri dönüş...