第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

無法使用 Python 發(fā)布到 Flask Restful 端點(diǎn)

無法使用 Python 發(fā)布到 Flask Restful 端點(diǎn)

慕神8447489 2023-09-12 19:54:06
我有一個接受 JSON 的端點(diǎn)api.add_resource(EventsList, '/events')Flask Restful / SQL Alchemy 是:class EventsList (Resource):    #RETURNS ALL EVENTS    def get(self):        schema = EventSchema()        result = db.session.query(EventModel).all()        return schema.dump(result, many=True), 200    #POSTS A SINGLE EVENT    def post(self):        title = request.json['title']        date = request.json['date']        event = EventModel(title=title,date=date)        db.session.add(event)        db.session.commit()        data = ({'title': event.title,                 'date': event.date})        response = jsonify(data)        response.status_code = 200        return response當(dāng)通過命令行使用curl時,這絕對可以正常工作:卷曲請求curl http://localhost:5002/events -H "Content-Type: application/json" -d '{"title": "TEst Event 3", "date":"2020-02-23"}'卷曲響應(yīng)響應(yīng)包含預(yù)期的數(shù)據(jù):{"date":"Sun, 23 Feb 2020 00:00:00 GMT","title":"TEst Event 3"}這一切都很好。但是,當(dāng)我嘗試從 Python 執(zhí)行此操作時,我收到服務(wù)器錯誤。Pythonimport importlibimport subprocessimport csvimport sysimport requeststargetWikiPage = input("Target Wiki Page: ")eventTitle = input("Event Title: ")eventDate = input("Event Date: ")    #POST AN EVENTdata = '{"title": "'+eventTitle+'","date":"'+eventDate+'"}'print("SENDING EVENT DATA:")print(requests.body)print(requests.headers)response = requests.post("http://localhost:5002/events", json=data)任何幫助表示贊賞。
查看完整描述

2 回答

?
米脂

TA貢獻(xiàn)1836條經(jīng)驗 獲得超3個贊

修復(fù)了這個問題。


問題在于我如何將數(shù)據(jù)發(fā)送到服務(wù)器。這就是我所擁有的:


targetWikiPage = input("Target Wiki Page: ")

eventTitle = input("Event Title: ")

eventDate = input("Event Date: ")


    

#POST AN EVENT

data = '{"title": "'+eventTitle+'","date":"'+eventDate+'"}'

print("SENDING EVENT DATA:")

print(requests.body)

print(requests.headers)


response = requests.post("http://localhost:5002/events", json=data)

請注意,我的requests.post有兩個值被傳遞。網(wǎng)址和數(shù)據(jù)。

問題如下:

  1. 數(shù)據(jù)格式不正確。這應(yīng)該是:

data = json.dumps({"title": eventTitle, "date": eventDate})

  1. 我需要添加標(biāo)題:

headers = {'Content-type': 'application/json', 'Accept': 'text/plain'}

  1. 我需要將一個data值傳遞給服務(wù)器,而不是json

requests.post("http://localhost:5002/events", headers=headers, data=data)

這將我的文件更改為:

targetWikiPage = input("Target Wiki Page: ")

eventTitle = input("Event Title: ")

eventDate = input("Event Date: ")


#POST AN EVENT

data = json.dumps({"title": eventTitle, "date": eventDate})

headers = {'Content-type': 'application/json', 'Accept': 'text/plain'}

print(data)

print(headers)

print("SENDING EVENT DATA:")


response = requests.post("http://localhost:5002/events", headers=headers, data=data)

json=json.loads(response.content)


查看完整回答
反對 回復(fù) 2023-09-12
?
富國滬深

TA貢獻(xiàn)1790條經(jīng)驗 獲得超9個贊

您在字符串對象中有 JSON 數(shù)據(jù)。嘗試通過字符串的鍵從字符串中提取值將產(chǎn)生您所描述的錯誤


>>> response = '{"date":"Sun, 23 Feb 2020 00:00:00 GMT","title":"TEst Event 3"}'

>>> response_date = response["date"]

Traceback (most recent call last):

  File "<pyshell#1>", line 1, in <module>

    response_date = response["date"]

TypeError: string indices must be integers

您需要先將字符串轉(zhuǎn)換為a dict,然后提取值


>>> import json

>>> response_as_json = json.loads(response)

>>> response_date = response_as_json["date"]

>>> response_date

'Sun, 23 Feb 2020 00:00:00 GMT'


查看完整回答
反對 回復(fù) 2023-09-12
  • 2 回答
  • 0 關(guān)注
  • 140 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號