mongo database, access to praise the data.
from app import mongo from app.external.yz.goods_api import YzGoodsApi from openpyxl import Workbook class YzGoods: # 初始化 def __init__(self): self.yz_api_goods = YzGoodsApi() self.collection = mongo.db.yz_goods_bx self.collection_tag = mongo.db.yz_tags_bx # 抓取商品信息存入mongo数据库 def storage_mongo_goods(self): gooods_itemid_list = self.get_goodslist() for itemid in gooods_itemid_list: goods = self.collection.find_one({"_id": itemid}) if goods: continue else: goods = self.yz_api_goods.get_goods(item_id=itemid) goods['_id'] = itemid self.collection.insert_one(goods) # 抓取商品类目存入mongo数据库 def storage_mongo_tags(self): self.collection_tag.remove({}) page_size = 10 page_no = 1 while True: get_tagid = self.yz_api_goods.get_Taglist(page_no=page_no, page_size=page_size) for item in get_tagid: self.collection_tag.insert_one(item) if len(get_tagid) < page_size: break else: page_no += 1 def getgoods(self, item_id): goods = self.collection.find_one({"_id": item_id}) if goods: return goods else: goods = self.yz_api_goods.get_goods(item_id=item_id) goods['_id'] = item_id self.collection.insert_one(goods) return goods # 获取商品id def get_goodslist(self): value_list = [] page_size = 100 page_no = 1 while True: goods_list = self.yz_api_goods.get_goods_list(page_no=page_no, page_size=page_size, show_sold_out=2) keys = 'item_id' for out_dict in goods_list: tmp = out_dict[keys] value_list.append(tmp) if len(goods_list) < page_size: break else: print(page_no) page_no += 1 return value_list # 获取商品详细信息 def get_goods_id(self): goods_list = self.get_goodslist() value_list = [] for item_id in goods_list: id = item_id goods = self.getgoods(item_id=id) keys = ( 'item_id', 'title', 'item_no', 'created', 'cid', 'tag_ids', 'quantity', 'sold_num', '. price ' ) # well understood that one, dictionary, list, the dictionary value or cycle removed. tmp = {} for Keys in Keys: tmp [ Keys ] = Goods [ Keys ] IF ' SKUs ' in Goods and Goods [ ' SKUs' ] : for SKU in Goods [ 'SKUs' ] : tmp [ ' item_id ' ] = str(goods['item_id']) + '-' + str(sku['sku_id']) value_list.append(tmp.copy()) else: tmp['item_id'] = str(goods['item_id']) value_list.append(tmp.copy()) return value_list def make_goods_excel(self): out_list = self.get_goods_id() # 创建excel工作簿 wb =The Workbook () # first excel_sheet1 WS = WB [ wb.sheetnames [0 ] ] X = 2 Y = . 1 # outer loop dictionary key, inner layer dictionary valuer cycle. Understand. # Modifications. Think about a cycle. for out_dict in out_list: dict_keys = out_dict.keys () out_dict [ "Tags" ] = out_dict [ 'tag_ids' ] IF ' tag_ids ' in dict_keys the else out_dict[ 'tag_id'] if 'tag_id' in dict_keys else "" if 'tag_ids' in dict_keys: del out_dict['tag_ids'] if "tag_id" in dict_keys: del out_dict['tag_id'] for entry in out_list: for key, item in entry.items(): value = item if Key == ' Tags ' : value = " / ." the Join ( [ STR (T) for T in Item ] ) ws.cell (Row = X, column = Y, value = value) Y = Y + . 1 X + = . 1 Y = . 1 WB. Save (R & lt ' C: \ the Users \ HBX \ Desktop \ work \ 201904 \ excitation traffic allocation \ product table 3.xlsx ' ) def make_goods_id_excel(self): out_list = self.get_tagid() # 创建excel工作簿 wb = Workbook() # 第一个excel_sheet1 ws = wb[wb.sheetnames[0]] x = 2 y = 1 for out_dict in out_list: for item in out_dict: values = out_dict[item] ws.cell(row=x, column= Y, value = values ) Y = Y + . 1 X + = . 1 Y = . 1 WB. Save (R & lt ' C: \ the Users \ HBX \ Desktop \ work \ 201904 \ excitation traffic allocation \ product table 4.xlsx ' ) IF the __name__ == ' __main__ ' : . YzGoods () storage_mongo_tags () . YzGoods # () make_goods_id_excel () # A = . 1