2013-05-08 36 views

Trả lời

16

Đơn giản chỉ cần:

json.loads(request.POST.get('mydata', '{}')) 

Hoặc:

data = json.loads(request.POST['mydata']) if 'mydata' in request.POST else {} 

Hoặc:

if 'mydata' in request.POST: 
    data = json.loads(request.POST['mydata']) 
else: 
    data = {} # or data = None 
+0

Một snafu ở đây thường bắt mọi người là chuỗi rỗng. Nếu mydata trống, thì điều này sẽ thất bại và đối số mặc định trong get sẽ không giúp bạn tiết kiệm. – ButtersB

1

loads() mất một json định dạng chuỗi và biến nó thành một đối tượng Python như dict hoặc danh sách. Trong mã của bạn, bạn đang chuyển dict() làm giá trị mặc định nếu mydata không tồn tại trong request.POST, trong khi đó phải là một chuỗi, như "{}". Vì vậy, bạn có thể viết -

json_data = json.loads(request.POST.get('mydata', "{}")) 

Hãy nhớ rằng, giá trị của request.POST['mydata'] phải được định dạng JSON, nếu không bạn sẽ gặp lỗi tương tự.

Các vấn đề liên quan