Wpis z mikrobloga

Mam projekt, gdzie będę musiał mieć skomplikowane typy danych, oczywiście zacząłem hardcodowania wszystkiego w klasach i dataclass, żeby zrobić kilka jsonów, ale na dłuższą mete to jest chyba zły pomysł, projekt będzie się rozrastał dowolnie, i teraz myślę, czy nie lepiej użyć jakiś JSON-SCHEMA, zbudować plik JSON i potem go ładować, problem w tym, że chcę mieć interfejs do tego, bo ostatecznie będę miał z takiej klsy mnóstwo obiektów o tej strukturze i liczę na prosty dostęp ze sprawdzaniem błędów, no i tu wchodzi cały na biało:
https://pypi.org/project/python-benedict/

Jak tworzyć skomplikowane typy danych? Jak je walidować? Jak nimi obracać w pythonie? Na razie pomysł jest taki, że stworze plik JSON, załaduje go do słownika typu benedict, a potem jakoś rozszerzę te klasę, się zobaczy.
#programowanie #programista15k #python #linux
  • 8
  • 0
@Yelonek: @dzyndzla a takie coś ujdzie?

from benedict import benedict
import json
import jsonschema

class DynamicznaKlasa:
def __init__(self, dane_json, schema):
if not jsonschema.validate(dane_json, schema):
raise ValueError("Dane JSON nie spełniają schematu")

self.__dict__ = benedict.from_dict(dane_json)

# Przykładowe dane JSON
przykladowy_json = {
"imie": "Jan",
"nazwisko": "Kowalski",
"wiek": 30
}

# Schemat JSON
schema = {
"type": "object",
"properties": {
"imie": {
"type": "string"
},
"nazwisko": {
"type": "string"
},
"wiek": {
"type": "integer"
@pyroxar: a nie mozesz sobie po prostu tworzyc oddzielnej najprostszej klasy dla obiektow do ktorych bedziesz wsadzac parametry i wyciagac parametry metoda _dict_? To na poczatek

A dobra widze ze wlasnie to zrobiles choc moglbys to zrobic bez zewnetrznych bibliotek

Co konkretnie chcesz zrobic bardziej skomplikowanego niz taki opakowany dict z jsona?