我正在开发一个 woocommerce rest api,在其中我使用 python 从 mongodb 传递产品数据。我为此写了一个脚本。脚本第一次成功运行并通过了两种产品,但是当我尝试通过更多产品时却失败了。我不知道我在哪里做错了。
显示此错误:
requests.exceptions.ReadTimeout: HTTPConnectionPool(host='localhost', port=80): 读取超时。(读取超时=5)
脚本:
from woocommerce import API
import os, sys
parent_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(parent_dir)
from portal_v2.settings import _MONGO_DB_URI
from pymongo import MongoClient
import os, csv, ast
wcapi = API(
url="http://localhost/wordpress1",
consumer_key="ck_******************************************",
consumer_secret="cs_******************************************",
wp_api=True,
version="wc/v1"
)
class Products(object):
def __init__(self, dbname):
_client = MongoClient(_MONGO_DB_URI)
self._database = _client[dbname]
self.getCollections()
self.dbname = dbname
def getCollections(self):
self.products = self._database['products']
def getProducts(self):
product_dict = []
for each in self.products.find().limit(10):
product_dict.append({"name": each['name'],"slug": each['name'].replace(' ','').replace('/','') + each['sku'].replace(' ','').replace('/',''),"type": "simple","status": "publish","featured": False,"catalog_visibility": "visible","description": each['description'],"sku": each['sku'],"regular_price": each['mrp'],"sale_price": each['cost_price'],"date_on_sale_from": "","date_on_sale_to": "","purchasable": True,"total_sales": 0,"virtual": False,"downloadable": False,"downloads": [],"download_limit": -1,"download_expiry": -1,"download_type": "standard","external_url": "","button_text": "","tax_status": "taxable","tax_class": "","manage_stock": False,"stock_quantity": None,"in_stock": True,"backorders": "no","backorders_allowed": False,"backordered": False, "sold_individually": False, "weight": each['weight_gms'],"dimensions": {"length": each['length_mm'],"width": each['width_mm'],"height": each['height_mm']},"shipping_required": True,"shipping_taxable": True,"shipping_class": "", "shipping_class_id": 0,"reviews_allowed": True,"average_rating": "0.00","rating_count": 0,"related_ids": [],"upsell_ids": [],"cross_sell_ids": [],"parent_id": 0,"purchase_note": "","categories": [{"id": 9,},{"id": 14,}],"tags": [],"images": [{"src": each['image_url'].replace('dl=0','raw=1'),"name": each['name'],"position": 0}],"attributes": [],"default_attributes": [],"variations": [],"menu_order": 0})
data = {'create':product_dict}
print data
return data
def updateProducts(self, data):
wcapi.post("products/batch", data)
# print wcapi.get("products/?per_page=45").json()
data = Products('xyz').getProducts()
Products('xyz').updateProducts(data)
其中“xyz”是数据库名称。