Open roberthsu2003 opened 3 months ago
import requests
youbike_url = 'https://tcgbusfs.blob.core.windows.net/dotapp/youbike/v2/youbike_immediate.json'
res = requests.get(youbike_url)
if res.status_code == 200:
print('下載成功')
else:
print('下載失敗')
from pydantic import BaseModel, Field, RootModel, field_validator
class Site(BaseModel):
站名: str = Field(alias='sna')
區域: str = Field(alias='sarea')
時間: str = Field(alias='mday')
地點: str = Field(alias='ar')
總車輛數: int = Field(alias='total')
可借數量: int = Field(alias='available_rent_bikes')
可還數量: int = Field(alias='available_return_bikes')
經度: float = Field(alias='longitude')
緯度: float = Field(alias='latitude')
狀態: bool = Field(alias='act')
@field_validator('站名')
@classmethod
def get_name(cls, value: str) -> str:
return value.split('_')[-1]
class YouBike(RootModel):
root: list[Site]
def __iter__(self):
return iter(self.root)
def __getitem__(self, item):
return self.root[item]
data: YouBike = YouBike.model_validate_json(res.text)
all_sites: list[dict] = data.model_dump()
import pandas as pd
df1 = pd.DataFrame(all_sites)
df1
import requests
youbike_url = 'https://tcgbusfs.blob.core.windows.net/dotapp/youbike/v2/youbike_immediate.json'
res = requests.get(youbike_url)
if res.status_code == 200:
print('下載成功')
else:
print('下載失敗')
from pydantic import BaseModel, Field, RootModel, field_validator
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')
可還數量: int = Field(alias='available_return_bikes')
經度: float = Field(alias='longitude')
緯度: float = Field(alias='latitude')
@field_validator('站名')
@classmethod
def get_name(cls, value: str) -> str:
return value.split('_')[-1]
class YouBike(RootModel):
root: list[Site]
def __iter__(self):
return iter(self.root)
def __getitem__(self, item):
return self.root[item]
data: YouBike = YouBike.model_validate_json(res.text)
all_sites: list[dict] = data.model_dump()
import pandas as pd
df1 = pd.DataFrame(all_sites)
df1
from pydantic import BaseModel, Field, field_validator,RootModel
class Bike(BaseModel):
station: str = Field(alias='sna')
station_area:str=Field(alias='sarea')
time:str=Field(alias='mday')
address:str=Field(alias='ar')
status:bool=Field(alias='act')
total:int
borrow:int=Field(alias='available_rent_bikes')
latitude:float
longitude:float
return_bikes:int=Field(alias='available_return_bikes')
@field_validator('station')
@classmethod
def get_name(cls, value: str) -> str:
return value.split('_')[-1]
class YouBike(RootModel):
root: list[Bike]
def __iter__(self):
return iter(self.root)
def __getitem__(self, item):
return self.root[item]
data: YouBike = YouBike.model_validate_json(res.text)
all_sites: list[dict] = data.model_dump()
import pandas as pd
df1 = pd.DataFrame(all_sites)
df1
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, RootModel, field_validator
class Site(BaseModel):
站名:str = Field(alias = 'sna')
所在區:str = Field(alias='sarea')
位置:str = Field(alias='ar')
日期:str = Field(alias='mday')
狀態:bool = Field(alias = "act")
總車輛數:int = Field(alias='total')
可借:int = Field(alias='available_rent_bikes')
可還:int = Field(alias='available_return_bikes')
經度:float = Field(alias='longitude')
緯度:float = Field(alias='latitude')
@field_validator("站名")
@classmethod
def abc(cls,value:str)->str:
return value.split("_")[-1]
class YouBike(RootModel):
root: list[Site]
data:YouBike = YouBike.model_validate_json(res.text)
all_sites:list = data.model_dump()
import pandas as pd
df1 = pd.DataFrame(all_sites)
df1
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