Я новичок в Python, я прежде всего JavaScript разработчик, поэтому все еще пытаюсь справиться со всем. Хотя я действительно наслаждаюсь этим.
Общая задача - взять все заказы, полученные в Shopify за последний день, с помощью API Shopify, а затем опубликовать их в API платформы Elogii Logistics, чтобы мы могли управлять доставкой маршруты более эффективны.
Я подключился к обоим API-интерфейсам нормально, и данные для обоих хранятся как Python Объекты. Теперь мне нужно знать, как выполнить итерации по обоим объектам и выяснить, был ли заказ из Shopify уже создан в Elogii, и если нет, опубликовать его в Elogii.
Я пытался использовать diff(ELOGII_RESPONSE_OBJECT, SHOPIFY_ORDERS)
, но это примерно насколько я знаю.
Есть предложения?
import shopify
import requests
import json
from jsondiff import diff
from datetime import datetime, timedelta, date
from collections import namedtuple
# Shopify Params
SHOPIFY_API_KEY = '######'
SHOPIFY_PASSWORD = '######'
SHOP_NAME = '#####'
SHOP_URL = "https://%s:%s@%s.myshopify.com/admin" % (SHOPIFY_API_KEY, SHOPIFY_PASSWORD, SHOP_NAME)
shopify.ShopifyResource.set_site(SHOP_URL)
SHOP = shopify.Shop.current()
TIME_FORMAT = "%Y-%m-%dT%H:%M:%S+04:30"
TODAY = date.today()
FORMATTED_TODAY = TODAY.strftime(TIME_FORMAT)
# Elogii Params
ELOGII_AUTH='####'
ELOGII_HEADER = {'Content-Type': 'application/json', 'Authorization': ELOGII_AUTH}
ELOGII_URL = 'https://api.elogii.com/deliveries'
ELOGII_RESPONSE = requests.get(ELOGII_URL, headers=ELOGII_HEADER)
ELOGII_RESPONSE_JSON = ELOGII_RESPONSE.json()
ELOGII_RESPONSE_JSON_STR = json.dumps(ELOGII_RESPONSE_JSON)
# print(ELOGII_RESPONSE_JSON)
ELOGII_RESPONSE_OBJECT = json.loads(ELOGII_RESPONSE_JSON_STR, object_hook=lambda d: namedtuple('X', d.keys(), rename=True)(*d.values()))
print(ELOGII_RESPONSE_OBJECT)
def get_all_resources_date(resource, **kwargs):
SHOPIFY_RESOURCE_COUNT = resource.count(**kwargs)
SHOPIFY_RESOURCES = []
if SHOPIFY_RESOURCE_COUNT > 0:
for page in range(1, ((SHOPIFY_RESOURCE_COUNT-1) // 250) + 2):
kwargs.update({"created_at_min" : FORMATTED_TODAY, "limit" : 250, "page" : page})
SHOPIFY_RESOURCES.extend(resource.find(**kwargs))
return SHOPIFY_RESOURCES
SHOPIFY_ORDERS = get_all_resources_date(shopify.Order())
DIFFERENCE = diff(ELOGII_RESPONSE_OBJECT, SHOPIFY_ORDERS)
print(DIFFERENCE)