roberthsu2003 / __2024_04_17_mon_wed__

Python與AI人工智慧開發入門
25 stars 4 forks source link

問題 : 不知是在程式的哪部分有寫錯,出來的結果如下圖,可以麻煩老師或同學幫忙找一下問題在哪嗎? #25

Open victor1629 opened 3 weeks ago

victor1629 commented 3 weeks ago
import requests
from requests import Response
youbike_url = 'https://tcgbusfs.blob.core.windows.net/dotapp/youbike/v2/youbike_immediate.json'

res:Response = requests.get(youbike_url)

if res.status_code == 200:
    print("下載成功")
else:
    print("下載失敗")

from pydantic import BaseModel,Field,field_validator,RootModel
class site (BaseModel):
    站名:str = Field(alias='sna') 
    行政區域:str = Field(alias='sarea')
    時間:str = Field(alias='mady')
    位置:str = Field(alias='ar')
    狀態:bool = Field(alias='act')
    總數量:int = Field(alias='total')
    可借:int = Field(alias='available_rent_bikes')
    經度:float = Field(alias='latitude')
    緯度:float = Field(alias='longitude') 
    可還:int = Field(alias='vailable_return_bikes')

    @field_validator('站名')
    @classmethod
    def get_name(cls,value:str) ->str:
         return value.split('_')[-1]   

class Youbick(RootModel):
    root:list = list[site]
    def __iter__(self) :
        return iter(self.root)

    def __getitem__(self,item):
        return self.root[item]

data = Youbick.model_validate_json(res.text)
all_sites = data.model_dump()

import pandas as pd
df = pd.DataFrame(all_sites)
df

螢幕擷取畫面 2024-06-17 173257 螢幕擷取畫面 2024-06-17 173257 螢幕擷取畫面 2024-06-17 173257

roberthsu2003 commented 3 weeks ago
import requests
from requests import Response
youbike_url = 'https://tcgbusfs.blob.core.windows.net/dotapp/youbike/v2/youbike_immediate.json'

res:Response = requests.get(youbike_url)

if res.status_code == 200:
    print("下載成功")
else:
    print("下載失敗")

from pydantic import BaseModel,Field,field_validator,RootModel
class site (BaseModel):
    站名:str = Field(alias='sna') 
    行政區域:str = Field(alias='sarea')
    時間:str = Field(alias='mady')
    位置:str = Field(alias='ar')
    狀態:bool = Field(alias='act')
    總數量:int = Field(alias='total')
    可借:int = Field(alias='available_rent_bikes')
    經度:float = Field(alias='latitude')
    緯度:float = Field(alias='longitude') 
    可還:int = Field(alias='vailable_return_bikes')

    @field_validator('站名')
    @classmethod
    def get_name(cls,value:str) ->str:
         return value.split('_')[-1]   

class Youbick(RootModel):
    root:list = list[site]
    def __iter__(self) :
        return iter(self.root)

    def __getitem__(self,item):
        return self.root[item]

data = Youbick.model_validate_json(res.text)
all_sites = data.model_dump()

import pandas as pd
df = pd.DataFrame(all_sites)
df

螢幕擷取畫面 2024-06-17 173257 螢幕擷取畫面 2024-06-17 173257 螢幕擷取畫面 2024-06-17 173257

import requests
from requests import Response
youbike_url = 'https://tcgbusfs.blob.core.windows.net/dotapp/youbike/v2/youbike_immediate.json'

res:Response = requests.get(youbike_url)

if res.status_code == 200:
    print("下載成功")
else:
    print("下載失敗")

from pydantic import BaseModel,Field,field_validator,RootModel
class Site (BaseModel):
    站名:str = Field(alias='sna') 
    行政區域:str = Field(alias='sarea')
    時間:str = Field(alias='mday')
    位置:str = Field(alias='ar')
    狀態:bool = Field(alias='act')
    總數量:int = Field(alias='total')
    可借:int = Field(alias='available_rent_bikes')
    緯度:float = Field(alias='latitude')
    經度:float = Field(alias='longitude')     
    可還:int = Field(alias='available_return_bikes')

    @field_validator('站名',mode='before')
    @classmethod
    def get_name(cls,value:str) ->str:
         return value.split('_')[-1]   

class Youbick(RootModel):
    root:list[Site]

data = Youbick.model_validate_json(res.text)
all_sites = data.model_dump()

import pandas as pd
df = pd.DataFrame(all_sites)
df