這是我的功能:def save_to_mongo(self, df, collection, additional_variable): for index, row in df.iterrows(): result = row.to_dict() collection.update_one( {"_id": str(row['date']) + "_" + str(row['sector']) + "_" + str(row['caseid']) + str(row[additional_variable])}, { '$set': result }, upsert=True)我有許多類似的函數,其中additonal_variable可以包含None.我真的很想避免用這樣的風格來膨脹代碼庫:if additional_varibale is None: collection.update_one( {"_id": str(row['date']) + "_" + str(row['sector']) + "_" + str(row['caseid'])}, { '$set': result }, upsert=True)else: collection.update_one( {"_id": str(row['date']) + "_" + str(row['sector']) + "_" + str(row['caseid']) + str(row[additional_variable])}, { '$set': result }, upsert=True)我認為這段代碼很難看并且難以維護。有沒有更好的方法或最佳實踐來避免使用這些長的ifandelse語句?
1 回答
倚天杖
TA貢獻1828條經驗 獲得超3個贊
您可以將塊最小if else化為 -
additional_varibale = '' if additional_varibale is None else str(row[additional_variable])
collection.update_one(
{"_id": str(row['date']) + "_" + str(row['sector']) + "_" + str(row['caseid']) + additional_varibale},
{
'$set': result
},
upsert=True)
添加回答
舉報
0/150
提交
取消
