jsonデータをクラス化してデータを取り出したい
解決したいこと
タイトルの通りです
環境
py-3.10.4
該当するソースコード
data.json
[
{
"rendered_body": "...",
"user": {
"description": "discord.jsを触ろうか迷ってます。",
"facebook_id": "",
"followees_count": 1,
"followers_count": 1,
"github_login_name": "peco2282",
"id": "peco_2282",
"items_count": 11,
"linkedin_id": "",
"location": "",
"name": "",
"organization": "",
"permanent_id": 1581903,
"profile_image_url": "https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1581903/profile-images/1651145962",
"team_only": "False",
"twitter_screen_name": "peco_2282",
"website_url": ""
}
}
]
item.py
class Item:
def __init__(self, data: Dict[str, Any]):
self.user: User = data.get("user")
user.py
class User:
def __init__(self, data: Dict[str, Any]):
self.description: Optional[str] = data.get("description")
self.name: Optional[str] = data.get("name")
ここで、
main.py
with open("data.json", encoding="utf8", mode="r") as f:
data = json.load(f)
if __name__ == "__main__":
item = Item(data=data[0])
print(item.user)
print(item.user.description)
エラー
AttributeError: 'dict' object has no attribute 'description'
やはり出るなと思っていたのですが、javaとかのようにはいかないのでしょうか。
item.userは正しく取り出されています。
0 likes