1 回答

TA貢獻1873條經驗 獲得超9個贊
我最終需要為我的 json 解碼器編寫一個自定義對象掛鉤。
我還決定添加一個camelizer來縮短鍵。
import requests
import re
import json
from datetime import datetime
quarterdateformat = '%Y-%m-%d'
def camelize(string):
return "".join(string.split(" "))
def convert_types(d):
for k, v in d.items():
#print(k, type(v))
new_v = v
if type(v) is str:
#match for float
if re.match('[-+]?[0-9]*\.[0-9]+', v):
new_v = float(v)
#match for date
if re.match('([12]\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01]))', v):
new_v = datetime.strptime(v, quarterdateformat).date()
d[k] = new_v
d = {camelize(k): v for k, v in d.items()}
return d
url = "https://financialmodelingprep.com/api/v3/financials/income-statement/CRM,HUBS"
params = {'datatyupe' : 'json'}
r = requests.get(url, params)
jd= json.loads(r.text, object_hook=convert_types)
convert_types 是對象掛鉤函數,它使用正則表達式來查找浮點數和日期并轉換它們。Camelizer 用于在對象掛鉤的末尾將所有鍵轉換為 CamelCase。
添加回答
舉報