Python kann keine Verbindung mit Woocommerce-Rest-API herstellen

Lesezeit: 2 Minuten

Ich arbeite an einer Woocommerce-Rest-API, in der ich die Produktdaten von Mongodb mit Python übergebe. Dazu habe ich ein Skript geschrieben. Beim ersten Mal wurde das Skript erfolgreich ausgeführt und zwei Produkte bestanden, aber als ich versuchte, mehr Produkte zu übergeben, schlägt es fehl. Ich weiß nicht, wo ich es falsch mache.

Zeigt diesen Fehler:

Requests.Exceptions.ReadTimeout: HTTPConnectionPool(host=”localhost”, Port=80): Zeitüberschreitung beim Lesen. (Zeitüberschreitung lesen=5)

Skript:

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("https://stackoverflow.com/",'') + each['sku'].replace(' ','').replace("https://stackoverflow.com/",''),"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)

wobei „xyz“ der Datenbankname ist.

Erhöhen Sie einfach die Timeout-Option. etwas wie:

wcapi = API(
url="http://localhost/wordpress1",
consumer_key="ck_******************************************",
consumer_secret="cs_******************************************",
wp_api=True,
version="wc/v1",
timeout=10 # the default is 5, increase to whatever works for you.

)

  • Jemand markiert dies bitte als Antwort. Ich habe es gerade verifiziert.

    – kbuilds

    20. Februar 2017 um 19:41 Uhr

1384660cookie-checkPython kann keine Verbindung mit Woocommerce-Rest-API herstellen

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy