Flask中解析Json參數失敗


問題描述

解析的代碼如下:

# data = request.get_json()
# 開始使用的get_json()
data = request.get_data(parse_form_data=False)
data = json.loads(data, encoding='utf-8')

postman模擬請求的參數如下:

{
    ‘sub‘: [‘美國總統‘, ‘日本首相‘],
    ‘obj‘: [‘制裁日本’, ‘韓國’],
    ‘time‘: [’2018-05-13 00:00:00’, ‘2018-05-13 00:00:00‘],
    ‘location‘: [‘華盛頓‘, ’東京‘],
    ‘trigger‘: [‘宣布‘, ‘譴責’]
}

嘗試

1

起初使用的是request.get_json(), 提示 ValueError: No JSON object could be decoded ,很奇怪,因為覺得傳遞的就是JSON,怎么還會有這種問題;

后改為了get_data,再使用 json.loads ,結果還是有問題;

ValueError: Expecting property name: line 1 column 2 (char 1)

然后網上查了一下,然后說可能是編碼問題,加各種嘗試依然不行……

2

結果在這個網頁看到了一句話

由於 json 語法規定 數組或對象之中的字符串必須使用雙引號,不能使用單引號 (官網上有一段描述是 “A string is a sequence of zero or more Unicode characters, wrapped in double quotes, using backslash escapes” )

emmm,釋然了,參數錯了;要把單引號改成雙引號,大意了……也就是說雖然Python中單雙引號OK,但JSON的話,就要雙引號。

{
    "sub": ["美國總統","日本首相"],
    "obj": ["制裁日本", "韓國"],
    "time": ["2018-05-13 00:00:00", "2018-05-13 00:00:00"],
    "location": ["華盛頓", "東京"],
    "trigger": ["宣布", "譴責"]
}

參考

https://blog.csdn.net/HeatDeath/article/details/79370945

https://blog.51cto.com/pcliuyang/1537111

https://jiap.me/tutorial/flask-requests-with-params-2/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM