ฉันมีรหัสภายในแอปพลิเคชัน Flask ที่ใช้ JSON ในคำขอและฉันสามารถรับวัตถุ JSON ได้ดังนี้:
Request = request.get_json()
สิ่งนี้ใช้งานได้ดี แต่ฉันพยายามสร้างการทดสอบหน่วยโดยใช้โมดูลที่ไม่เหมาะสมที่สุดของ Python และฉันมีปัญหาในการหาวิธีส่ง JSON พร้อมกับคำขอ
response=self.app.post('/test_function',
data=json.dumps(dict(foo = 'bar')))
สิ่งนี้ทำให้ฉัน:
>>> request.get_data()
'{"foo": "bar"}'
>>> request.get_json()
None
ดูเหมือนว่า Flask จะมีอาร์กิวเมนต์ JSON ซึ่งคุณสามารถตั้งค่า json = dict (foo = 'bar') ในคำขอโพสต์ แต่ฉันไม่รู้ว่าจะทำอย่างไรกับโมดูลที่ไม่เหมาะสมที่สุด
request.data
มี? บ่อยครั้งที่การแยกวิเคราะห์ json ล้มเหลวเนื่องจากการป้อนข้อมูลที่ไม่ถูกต้องมันจะล้มเหลวโดยไม่โต้ตอบและส่งคืนNone
ดังนั้นข้อมูลอินพุตดิบอาจไม่ใช่ json