-2

特定の基準に適合するタイプの車両をロードする必要がある、比較的単純なユース ケースがあります。この基準は、「sample_input」変数に表示されます。

ここで、正しい基準に適合する車を表示する必要があります。データベースの JSON を読み取り、carcar オブジェクトを作成して carDatabase リストに追加します。このリストから、ユーザーの要求に合う車を選択する必要があります。

したがって、本質的に何が起こるかはsample_input、Main.Py に単純な変数をロードしたことです。

コードはこれを行う必要がありますが、そうではありません (より良い実装は常に歓迎されます)。

Nameが空かどうかを確認します[]。そうであれば、次に進みます。そうでない場合は、同じ名前の車を検索し、原産国である次の基準に移動し、それが空かどうかを確認し、そうでない場合は、名前と原産国を持つ車を探します。残りの基準についてはetc。

import json

from Vehicle import Vehicle

sample_input = {
    "Name": [],
    "country of origin": ["france", "uk"],
    "transmission": [],
    "body type": ["coupe"],
    "drive type": [],
    "doors": [],
    "fuel type": []
}


def test():
    with open("data.json") as omapper:
        data = json.load(omapper)
        Database= []
        for i in data["vehicles"]:
            name = i["Name"]
            origin = i["country of origin"]
            transmission = i["transmission"]
            bodytype = i["body type"]
            drivetype = i["drive type"]
            doors = i["doors"]
            fueltype = i["fuel type"]
            vehicle= Vehicle(name,origin,transmission,bodytype,drivetype,doors,fueltype)
            Database.append(car)

    UserOutput = []

    for vehicles in Database:
        if vehicles.origin in sample_input["country of origin"] and vehicles.body_type in sample_input["body type"] and vehicles.doors in sample_input["doors"] != "":
            print(vehicle.name)


if __name__ == "__main__":
   test()

Vehicle.py: モデルクラス

 class Vehicle:
        def __init__(self, name, origin, transmission, body_type, drive_type, doors, fuel_type):
            self.name = name
            self.origin = origin
            self.transmission = transmission
            self.body_type = body_type
            self.drive_type = drive_type
            self.doors = doors
            self.fuel_type = fuel_type

Vehicle JSON: アプリケーションがサポートするすべての車両。

  {
    "attributes": {
        "country of origin": ["japan", "america", "germany", "south korea", "italy", "sweden"],
        "transmission": ["automatic", "manual"],
        "body type": ["hatchback", "sedan", "SUV", "ute", "coupe", "convertible", "van"],
        "drive type": ["RWD", "FWD", "4WD"],
        "doors": ["4 door", "2 door"],
        "fuel type": ["petrol", "diesel", "electric", "hybrid"]
    },
    "vehicles": [
    {
        "Name": "studebaker dictator",
        "country of origin": "america",
        "transmission": "manual",
        "body type": "sedan",
        "drive type": "RWD",
        "doors": "2 door",
        "fuel type": "petrol"
    },
    {
        "Name": "mitsubishi zero",
        "country of origin": "japan",
        "transmission": "manual",
        "body type": "hatchback",
        "drive type": "FWD",
        "doors": "2 door",
        "fuel type": "petrol"
    },
   ...
    ]
    }
4

1 に答える 1