roberthsu2003 / __2024_04_17_mon_wed__

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

請將下面程式,再取得so2,co欄位的資料 #20

Open roberthsu2003 opened 1 month ago

roberthsu2003 commented 1 month ago
import requests
from requests import Response
aqi_url = 'https://data.moenv.gov.tw/api/v2/aqx_p_488?api_key=e8dd42e6-9b8b-43f8-991e-b3dee723a52d&limit=1000&sort=datacreationdate desc&format=JSON'

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

#自訂的欄位驗証
from pydantic import BaseModel,Field,field_validator

class Site(BaseModel):
    site_name:str = Field(alias='sitename')
    county:str
    aqi:int
    status:str
    pm25:float = Field(alias='pm2.5')

    @field_validator("pm25",mode='before')
    @classmethod
    def whitespace_to_zero(cls,value:str)->str:
        if value == '':
            return '0.0'
        else:
            return value

class AQI(BaseModel):
    records:list[Site]

data1:AQI = AQI.model_validate_json(res.text)
for item in data1.records:
    print(item)
chesterXalan commented 1 month ago
import requests
from requests import Response
aqi_url = 'https://data.moenv.gov.tw/api/v2/aqx_p_488?api_key=e8dd42e6-9b8b-43f8-991e-b3dee723a52d&limit=1000&sort=datacreationdate desc&format=JSON'

res: Response = requests.get(aqi_url)
if res.status_code == 200:
    print('下載成功')
else:
    print('下載失敗')

#自訂的欄位驗証
from pydantic import BaseModel, Field, field_validator

class Site(BaseModel):
    site_name: str = Field(alias='sitename')
    county: str
    aqi: int
    status: str
    pm25: float = Field(alias='pm2.5')
    so2: float
    co: float

    @field_validator('pm25', 'so2', 'co', mode='before')
    @classmethod
    def whitespace_to_zero(cls, value: str) -> str:
        if value == '':
            return '0.0'
        else:
            return value

class AQI(BaseModel):
    records: list[Site]

data: AQI = AQI.model_validate_json(res.text)
for item in data.records:
    print(item)

image

MurrayChuang commented 1 month ago
import requests
from requests import Response

aqi_url = 'https://data.moenv.gov.tw/api/v2/aqx_p_488?api_key=e8dd42e6-9b8b-43f8-991e-b3dee723a52d&limit=1000&sort=datacreationdate desc&format=JSON'

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

from pydantic import BaseModel, Field, field_validator

class Site(BaseModel):
    site_name: str = Field(alias='sitename')
    county: str
    aqi: int
    status: str
    pm25: float = Field(alias='pm2.5')
    so2: float
    co: float

    @field_validator('pm25', 'so2', 'co', mode='before')
    @classmethod
    def whitespace_to_zero(cls, value: str) -> str:
        if value == '':
            return '0.0'
        else:
            return value

class AQI(BaseModel):
    records: list[Site]

data1: AQI = AQI.model_validate_json(res.text)
for item in data1.records:
    print(item)
image
Tony840705 commented 1 month ago
import requests
from requests import Response
aqi_url = 'https://data.moenv.gov.tw/api/v2/aqx_p_488?api_key=e8dd42e6-9b8b-43f8-991e-b3dee723a52d&limit=1000&sort=datacreationdate desc&format=JSON'

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

#自訂的欄位驗証
from pydantic import BaseModel,Field,field_validator

class Site(BaseModel):
    site_name:str = Field(alias='sitename')
    county:str
    aqi:int
    status:str
    pm25:float = Field(alias='pm2.5')
    so2:float
    co:float

    @field_validator('pm25','so2','co',mode='before')
    @classmethod
    def whitespace_to_zero(cls,value:str)->str:
        if value == '':
            return '0.0'
        else:
            return value

class AQI(BaseModel):
    records:list[Site]

data1:AQI = AQI.model_validate_json(res.text)
for item in data1.records:
    print(item)

擷取

ccanna commented 1 month ago
import requests
from requests import Response
aqi_url ='https://data.moenv.gov.tw/api/v2/aqx_p_488?api_key=e8dd42e6-9b8b-43f8-991e-b3dee723a52d&limit=1000&sort=datacreationdate desc&format=JSON'

res:Response = requests.get(aqi_url)
if res.status_code == 200:
    print('下載成功')
else:
    print("下載失敗")

from pydantic import BaseModel,Field,field_validator

class Site(BaseModel):
    site_name:str = Field(alias='sitename')
    county:str
    aqi:int
    status:str
    pm25:float = Field(alias='pm2.5')
    so2:float
    co:float

    @field_validator('pm25', 'so2', 'co', mode='before')  #before是要求她先執行我下面的程式驗證,再做上方pm25自己的float驗證
    @classmethod
    def data1(cls,value:str)->str:     #whitespace_to_zero是自己取的
        if value =='':
            return'0.0'
        else:
            return value

class AQI(BaseModel):
    records:list[Site]

data: AQI = AQI.model_validate_json(res.text)
for item in data.records:
    print(item)

image

PercJK commented 1 month ago
import requests
from requests import Response
aqi_url = 'https://data.moenv.gov.tw/api/v2/aqx_p_488?api_key=e8dd42e6-9b8b-43f8-991e-b3dee723a52d&limit=1000&sort=datacreationdate desc&format=JSON'

res: Response = requests.get(aqi_url)
if res.status_code == 200:
    print('下載成功')
else:
    print('下載失敗')

#自訂的欄位驗証
from pydantic import BaseModel, Field, field_validator

class Site(BaseModel):
    site_name: str = Field(alias='sitename')
    county: str
    aqi: int
    status: str
    pm25: float = Field(alias='pm2.5')
    so2: float
    co: float

    @field_validator('pm25', 'so2', 'co', mode='before')
    @classmethod
    def whitespace_to_zero(cls, value: str) -> str:
        if value == '':
            return '0.0'
        else:
            return value

class AQI(BaseModel):
    records: list[Site]

data: AQI = AQI.model_validate_json(res.text)
for item in data.records:
    print(item)

lesson12-3

KIOVER998 commented 1 month ago
import requests
from requests import Response
aqi_url = 'https://data.moenv.gov.tw/api/v2/aqx_p_488?api_key=e8dd42e6-9b8b-43f8-991e-b3dee723a52d&limit=1000&sort=datacreationdate desc&format=JSON'

res:Response = requests.get(aqi_url)
if res.status_code == 200:
    print("下載成功")
else:
    print("下載失敗")
#自訂的欄位驗証
from pydantic import BaseModel,Field,field_validator

class Site(BaseModel):
    site_name:str = Field(alias='sitename')
    county:str
    aqi:int
    status:str
    pm25:float = Field(alias='pm2.5')
    so2:float
    co:float

    @field_validator('pm25','so2','co',mode='before')
    @classmethod
    def whitespace_to_zero(cls,value:str)->str:
        if value == '':
            return '0.0'
        else:
            return value

class AQI(BaseModel):
    records:list[Site]

data1:AQI = AQI.model_validate_json(res.text)
for item in data1.records:
    print(item)

擷取

victor1629 commented 1 month ago
import requests
from requests import Response
aqi_url = 'https://data.moenv.gov.tw/api/v2/aqx_p_488?api_key=e8dd42e6-9b8b-43f8-991e-b3dee723a52d&limit=1000&sort=datacreationdate desc&format=JSON'

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

#自訂的欄位驗証
from pydantic import BaseModel,Field,field_validator

class Site(BaseModel):
    site_name:str = Field(alias='sitename')
    county:str
    aqi:int
    status:str
    pm25:float = Field(alias='pm2.5')
    so2:float
    co:float

    @field_validator("pm25","so2","co",mode='before')
    @classmethod
    def whitespace_to_zero(cls,value:str)->str:
        if value == '':
            return '0.0'
        else:
            return value

class AQI(BaseModel):
    records:list[Site]

data1:AQI = AQI.model_validate_json(res.text)
for item in data1.records:
    print(item)

image

chihweihan commented 1 month ago
import requests
from requests import Response
aqi_url = 'https://data.moenv.gov.tw/api/v2/aqx_p_488?api_key=e8dd42e6-9b8b-43f8-991e-b3dee723a52d&limit=1000&sort=datacreationdate desc&format=JSON'

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

#自訂的欄位驗証
from pydantic import BaseModel,Field,field_validator

class Site(BaseModel):
    site_name:str = Field(alias='sitename')
    county:str
    aqi:int
    status:str
    pm25:float = Field(alias='pm2.5')
    so2:float
    co:float

    @field_validator("pm25","so2","co",mode='before')
    @classmethod
    def whitespace_to_zero(cls,value:str)->str:
        if value == '':
            return '0.0'
        else:
            return value

class AQI(BaseModel):
    records:list[Site]

data1:AQI = AQI.model_validate_json(res.text)
for item in data1.records:
    print(item)

9999