2 Adapter
2 Adapter
1.Target
2.Client
3.Adaptee
4.Adapter
data_handler.py
import json
import csv
class JsonDataHandler:
def load_data(self,file_path):
with open(file_path,'r') as file:
return json.load(file)
class CsvDataHandler:
def load_data(self,file_path):
with open(file_path,'r') as file:
return list(csv.DictReader(file))
adapter.py
from data_handlers import JsonDataHandler, CsvDataHandler
class CsvToJsonAdapter:
def __init__(self,csv_handler: CsvDataHandler):
self.csv_handler = csv_handler
def load_data(self,file_path):
csv_data = self.csv_handler.load_data(file_path)
return [dict(row) for row in csv_data]
main.py
from adapter import CsvToJsonAdapter
from data_handlers import JsonDataHandler, CsvDataHandler
def load_and_display_data(data_handler,file_path):
data = data_handler.load_data(file_path)
print(data)
def main():
#JSON HANDLER
json_handler = JsonDataHandler()
json_path = "sample_data.json"
load_and_display_data(json_handler,json_path)
#CSV HANDLER
csv_handler = CsvDataHandler()
csv_path = "sample_data.csv"
csv_adapter = CsvToJsonAdapter(csv_handler)
load_and_display_data(csv_adapter,csv_path)
input()
if __name__ == '__main__':
main()