簡體   English   中英

Python | 檢查 dict{} 項是否在列表 [] 中

[英]Python | check if dict{} item is in list[]

  • 嘗試檢查內存列表plant_list[]與來自 api 的JSON有效負載。

  • 如果傳入的有效負載的字典nameplant_list內部匹配,則if應該觸發。

  • 相反,我的腳本只返回null

    請指出我的錯誤。

通過JSON呼叫發送的 JSON 是:
{ "name":"swizz", "days": "7", "price": 2.00 }



源代碼

from flask import Flask, request
from flask_restful import Api, Resource

app = Flask(__name__)
api = Api(app)


@app.route('/', methods=['GET', 'POST'])
def home():
    return 'Tiny'

plant_list = []
class Plant(Resource):
    def get(self, name):
        return {'Name':name}, 200

    def post(self, name):
        payload = request.get_json()
        for x in range(0, len(plant_list)):
            if payload['name'] == plant_list[x]['name']:
                return {'message': f'''Item {payload['name']} already stored in database.'''}
            else:
                plant_list.append(payload)
            return plant_list, 201


api.add_resource(Plant, '/plant/<string:name>')

if __name__ == '__main__':
    app.run(port=9004, debug=True)

您可以簡單地通過以下方式測試字典if "price" in plant_list[x]:的鍵if key_name in my_dict:...

您正在將 plant_list 設置為全局。 如果你想在 Class 中使用它,你應該在你的 class 中的 function 中定義它:

plant_list = []
class Plant(Resource):
    ....
    def post(self, name):
        global plant_list
        ....

不確定為什么需要它作為全局變量。 也許你想要:

class Plant(Resource):
    plant_list = []
    ....
    def post(self, name):
        ....

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM