2016-04-01 17 views
1

request.get_json() kullanırken, Flask bir tür dict oluşturur, ancak değerleri ayrıştırmaz. Örneğin, JSON verilerim {"name": "Joe", "age": "35"} ise, Flask'ın age öğesini str yerine int'a dönüştürmesini istiyorum.POSTed JSON verisinde Flask ayrıştırma sayılarını nasıl yapılır?

Nasıl yapmalıyım?

Sen JSON 35 alıntı zorunda
+0

Diğer JSON kod çözücü ayrıştırma numaralarını yaptığınız gibi: sayıları değil, dizeleri geçirin. – davidism

cevap

2

buraya bakın:

import json 

d = '{"name": "Joe", "age": "35"}' 
# The loads will not convert 35 to int, because it's quoted 
json.loads(d) # {u'age': u'35', u'name': u'Joe'} 


d = '{"name": "Joe", "age": 35}' 
# The loads will convert 35 to int, because it's not quoted 
json.loads(d) # {u'age': 35, u'name': u'Joe'} 

Yani, soruyu cevaplamak için, o yapıyor Şişe değil, bu Flask geçmek JSON oluşturarak her ne ise .

+0

Oh, json.loads() belgesini ve örneklerini yanlış anlamış olduğumu farkettim. Ama gerçek şu ki, jQuery ile "veri" nin bir dizge olmadığı bir POST isteğini nasıl yapacağımı bilmiyorum ... Ya da belki de get_json sonucunu ayrıştırmak için post-processing yapmak zorundayım) kendi başıma. –

+0

Peki, verilerin dizge olmadığı jQuery ile POST isteği farklı bir sorudur, bu yüzden bunu ayrı bir soru olarak gönderin. Sorun şu ki, düzeltmek istediğiniz problem Flask ya da Python ile değil. – mikeb