結構多層的情況下api取資料

2021-12-30 11:35:16 字數 2680 閱讀 6674

@staticmethod

def __get_dx_cmp_no_dx_time_info():

cmp_info =

],"alterlist": [,,

,,,,

,,,,

]}

}dx_time =

return cmp_info, dx_time

這樣寫容易出錯,最好分開寫:

@staticmethod

def __get_cmp_info_shi_xin():

return

],"alterlist": [,,

,,,,

,,,,

]}

}@staticmethod

def __get_open_time_shi_xin():

return

備註1:專案**現過的問題——當直接寫返回三個mock值,進入其中乙個mock後,其company_name被改寫了,並不是原來輸入到模型當中額那個值,分開寫後就正常了!

備註2:最好把要用到類寫到init裡面,而不是放在最外面,這樣不容易出現跑測試mock與debug出來的不一樣,

class shixinfeaturesdealsvc(object):

"""獲取特徵資料 -- 按時間節點排列

"""def __init__(self):

# 依賴物件

self.__network_features_time = networkfeaturestime()

self.featureextracttimenodeapisvc = featureextracttimenodeapisvc() 寫在類的init初始化方法裡面,而不要寫在class類的外面!!!只是呼叫的時候都帶上self。

失信特徵的提取:

只獲取失信時間以前的特徵——1)確定失信時間,2)獲取特徵;3)將特徵寫入資料庫;

1)確定失信時間:乙個公司有多個失信記錄,取最早的失信時間,

def __get_shixin_end_time(self, company_name):

"""獲取最後乙個點的截止時間

"""# 獲取返回失信的相關資料

#通過與時間無關的api調;

shixin_info = self.feature_extract_api_svc.get_cmp_shixin_api(company_name)

# 工商資訊

shixin_cmp_data = shixin_info.get(sx_model.data_1, {})#這個地方取到的是第一層data裡面的資料

publish_date_list = stream(shixin_cmp_data).take_path(sx_model.data_1, ) #這個地方sx_model.data_1與前面鍵名字相同,但取到得是第二層data裡面的資料; \

.map(lambda publishdate: str(publishdate.get('publishdate', ''))[:10]) \

.get()

if len(publish_date_list)>0:

publish_date_list.sort()

sx_time = publish_date_list[0]

else :

sx_time = self.now_time

sx_cnt = stream(shixin_cmp_data) \

.take_path(sx_model.data.total, 0) \

.get()

sx_label = 0

if float(sx_cnt) > 0:

sx_label = 1

return sx_time,sx_label

注意:通過api取引數,shixininfomodel as sx_model;

其中 take_path中sx_model.data_1 與 sx_model.data.data 取到的東西一樣,其本質都是'data',注意take_path()-take_path(sx_model.data.total, 0)函式的理解,第乙個引數是路徑(可以理解為鍵值--既可以為單個鍵,也可以是鍵列表),第二個引數是如果沒有取到則預設為0;

class shixininfomodel(object):

'''基本資訊(收費) 照面資訊(註冊資訊,股東資訊,主要人員,分支機構),

工商變更,企業年報.

'''data_1 = 'data' # 資料來源

class data(object): #這樣定義乙個data類的原因,可以直接取多個鍵,比如data.total和data.data這樣對應兩個鍵:'total','data';而在類裡面再定義乙個類則是模擬了資料的結構,表明publishdate在鍵'total','data'這個層級結構的裡面;

**疑問:貌似取publishdate裡面的內容的時候,其根本沒有根據逐一取,比如先把外層資料取出來,再取內層裡面需要的鍵值,而是直接用鍵,不管內層,外層,難道這已經避免了外層不會有這個鍵,所以就這樣取??

答覆:根據前面兩處對sx_model.data_1的分析,取值的時候用到了內外層的,是逐層取得,這樣本才符合邏輯!**

total = 'total'

data = 'data'

class data(object):

publishdate = "publishdate" #公布日期

資料缺失情況下的引數估計

前言 前一篇講到了引數估計,其中會涉及到特徵維數問題,類別間有差異的特徵有助於分類,而特徵太多又會造成計算和儲存的困難,並且還會造成overfitting導致泛化效能不高。通常會新增正則化或進行特徵降維或進行引數共享 平滑來防止過擬合。本章討論的是在樣本點的某些特徵丟失的情況下如何進行分類的問題。e...

使用mongoVUE刪除大量資料的情況下失效問題

昨天有乙個系統出現了問題,導致半夜時大量的錯誤資料產生,早晨一早接到上邊通知讓把這些資料盡數刪除。不可否認在資料操作時mongovue更加直觀,因此一般情況下我也都是使用這個工具,但是今天卻出現了問題。首先我查詢了一下需要刪除的資料的資料量,查詢操作正常,如圖 然後一樣的條件執行刪除remove操作...

資料庫哪些情況下適合建索引,哪些情況下不適合建索引

一 哪些情況下適合建索引 1.頻繁作為where條件語句查詢的字段 2.關聯字段需要建立索引,例如外來鍵字段,student表中的classid,classes表中的schoolid 等 3.排序字段可以建立索引 4.分組字段可以建立索引,因為分組的前提是排序 5.統計字段可以建立索引,例如coun...