![](/img/trans.png)
[英]Error - ValueError: invalid literal for int() with base 10: ' '
[英]ValueError: invalid literal for int() with base 10: '' I got this error when empty value was sent
我得到了ValueError: invalid literal for int() with base 10: ''
錯誤。 我寫
def convert_json(request):
json_body = json.loads(request.body)
return json_body.get('ans', 0)
當我像發送JSON
{ "ans": "" }
錯誤發生。我真的不明白為什么會發生此錯誤,因為我認為返回了0。在此json中,“”表示None,所以我認為應該返回0。但是我的代碼無法正常工作,我該如何解決呢?我應該怎么寫才能使系統更理想?
在Python中,即使字典中存在值, get()
也會返回該值,即使該值是一個空字符串也是如此。
您可以通過在外殼程序中運行以下代碼來進行測試:
>>> json_body = {"ans": ""}
>>> json_body.get('ans', 0)
''
如果要將空字符串轉換為0
,則應在convert_json
方法中執行此操作。
def convert_json(request):
json_body = json.loads(request.body)
ans = json_body.get('ans', 0)
if ans == '':
ans = 0
return ans
您可以修改代碼以:
def convert_json(request):
json_body = json.loads(request.body)
return json_body.get('ans') and int(json_body.get('ans')) or 0
在較高的代碼中,如果ans
類型不是數字,則ValeError提高。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.