gpt4 book ai didi

graphql - 如何根据在 python 中动态给出的多个不同标签获取 shopify 产品?

转载 作者:行者123 更新时间:2023-12-04 09:32:22 25 4
gpt4 key购买 nike

我正在尝试通过基于标签的过滤从 shopify 获取产品。标签将是动态的,不止一个,而且会发生变化。

import json
import time
import requests

API_KEY = 'xxxx'
PASSWORD = 'xxxx'
SHOP_NAME = 'xxxx'
API_VERSION = '2020-04' #change to the API version
shop_url = "https://%s:%s@%s.myshopify.com/admin/api/%s" % (API_KEY, PASSWORD, SHOP_NAME, API_VERSION)

def callShopifyGraphQL(GraphQLString, data):
headers = {
"X-Shopify-Storefront-Access-Token": 'xxxxxx',
"accept":"application/json"
}
response = requests.post(shop_url+'/graphql', json={'query': GraphQLString, 'variables': data}, headers=headers)
answer = json.loads(response.text)
return answer['data']

str1 = '0-12'
str2 = 'physical'

graphQLquery7 = """ {
products(first:100, query:"tag:$tags") {
edges {
node {
id
tags
title
onlineStoreUrl
}
}
}
}"""

tag = dict({
"tags":[str1,str2]
})

resp = callShopifyGraphQL(graphQLquery7, tag)
print json.dumps(resp)


# This query works fine and gives multiple products
# graphQLquery2 = """{
# products(first:100, query:"tag:[0-12, physical]") {
# edges {
# cursor
# node {
# id
# tags

# title
# onlineStoreUrl
# }
# }
# }
# }"""

我得到的输出基本上是一个产品为空的 JSON

{u'extensions': {u'cost': {u'requestedQueryCost': 102, u'throttleStatus': {u'restoreRate': 50.0, u'currentlyAvailable': 998, u'maximumAvailable': 1000.0}, u'actualQueryCost': 2}}, u'data': {u'products': {u'edges': []}}}
{"products": {"edges": []}}

我无法将我的标签作为查询中的变量传递。我目前正在使用 GraphQl,因为我找不到基于多个不同标签的 REST API 获取产品。

编辑:删除了 Python 标签,因为这不是 Python 问题,我已经添加了答案以及关于如何执行此操作的两种方法

最佳答案

您必须使用流畅的语法:

{
products(first:10, query:"tag:tag1 OR tag:tag2 OR tag:tag3"){
edges {
node {
id
tags
title
onlineStoreUrl
}
}
}
}

如果您希望包含所有标签或列出的任何标签,可以在其中使用 ORAND

安装 GraphiQL App并在实现之前测试查询,这对开发过程有很大帮​​助。

有关 GraphQL 搜索查询的更多信息,请参见此处:https://shopify.dev/concepts/about-apis/search-syntax

关于graphql - 如何根据在 python 中动态给出的多个不同标签获取 shopify 产品?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62779854/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com