1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- # -*- codeing = utf-8 -*-
- # @Time : 2022/10/29 13:54
- # @Author : Clown
- # @File : demo_易订货.py
- # @Software : PyCharm
- import re
- import pandas as pd
- import hashlib
- import requests
- import json
- def getGoodsInfo():
- url = 'https://corp.dinghuo123.com/v2/goods/list?currentPage=1&pageSize=50&loadPrice=true'
- cookie = 'jwt=eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiJqaWFuZ3hpYW9iYWl4eiIsInN1YiI6IntcImRiaWRcIjoyNTE5MDkxLFwic1wiOlwiUENcIixcInVpZFwiOjEyMjMwNTQ2LFwidXNlck5hbWVcIjpcImppYW5neGlhb2JhaXh6XCIsXCJ1c2VyVHlwZVwiOjF9IiwiZXhwIjoxNjY3ODc2MDk3fQ.MAWyTWjNrkugEjKMg1s4WROe5zQ_RF2Q1S1zByJEPSQ'
- headers = {
- 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36',
- 'cookie': cookie}
- if 1==1:
- resp = requests.get (url, headers=headers).json ()
- # print(resp)
- rows_Cnt = resp['data']['totalCount']
- pageSize = resp['data']['pageSize']
- if int (rows_Cnt / pageSize) < rows_Cnt / pageSize:
- pages = int (rows_Cnt / pageSize) + 1
- else:
- pages = int (rows_Cnt / pageSize)
- if 1==0:
- pages = 1
- cnt = 0
- df_out = []
- for page in range (1, pages + 1):
- url_page = f'https://corp.dinghuo123.com/v2/goods/list?currentPage={page}&pageSize=50&loadPrice=true'
- resp = requests.get (url_page, headers=headers).json ()
- datas = resp['data']['items']
- for goodInfo in datas:
- goodInfo_dict = {}
- goodInfo_dict['id'] = goodInfo['id']
- goodInfo_dict['商品编码'] = goodInfo['code']
- goodInfo_dict['商品名称'] = goodInfo['name']
- goodInfo_dict['商品分类'] = goodInfo['productTypeName']
- goodInfo_dict['最小单位'] = goodInfo['productUnitName']
- unitList = goodInfo['unitList']
- unit_dict_map = {}
- n = 1
- for unit in unitList:
- unit_dict_map[str (unit['unitId'])] = {}
- unit_dict_map[str(unit['unitId'])]['unitName'] = unit['unitName']
- unit_dict_map[str (unit['unitId'])]['rate'] = unit['rate']
- if unit['rate'] > 1:
- goodInfo_dict[f'副单位{n}'] = unit['unitName']
- unit_dict_map[str (unit['unitId'])]['kind'] = n
- n += 1
- else:
- unit_dict_map[str (unit['unitId'])]['kind'] = 0
- priceList = goodInfo['priceList']
- for priceInfo in priceList:
- priceInfo_dict = {}
- priceInfo_dict['供货区域'] = priceInfo['customerTypeName']
- if priceInfo['isForbidden'] == '0':
- priceInfo_dict['区域起订量(最小单位)'] = priceInfo['minQuantity']
- for unit_price in priceInfo['unitPrices']:
- unitId = unit_price['unitId']
- orderPrice = unit_price['orderPrice']
- rate = unit_dict_map[str(unitId)]['rate']
- if unit_dict_map[str(unitId)]['kind'] == 0:
- priceInfo_dict['最小单位售价'] = orderPrice
- else:
- x = unit_dict_map[str(unitId)]['kind']
- priceInfo_dict[f'副单位{x}售价'] = orderPrice
- priceInfo_dict[f'副单位{x}换算数量'] = rate
- else:
- ...
- priceInfo_dict.update (goodInfo_dict)
- df_out.append (priceInfo_dict)
- # print (priceInfo_dict)
- df_out_header = ['id','商品编码','商品名称','商品分类','供货区域','区域起订量(最小单位)','最小单位','最小单位售价','副单位1','副单位1售价','副单位1换算数量']
- excel_out = pd.DataFrame(df_out,columns=df_out_header)
- excel_out.to_excel('C:/Users/ClownHe/Desktop/店务通数据/易订货系统商品信息20221103.xlsx',index=False)
- def run():
- ...
- if __name__ == '__main__':
- getGoodsInfo()
|