Python 消费 API(打印)
Python consuming API (Printful)
我正在努力寻找一种方法来调用从以下代码生成的 JSON。
例如,如何调用 JSON 上可用的“名称”列表?
Ps:不用担心 Printful 秘钥;这是一个测试帐户。
import json
import requests
import base64
key = 'xk7ov0my-t9vm-70z6:y491-2uyygexkkq6r'
key = base64.b64encode(bytes(key, 'utf-8'))
keyDecoded = key.decode('ascii')
header = {'Authorization': 'Basic ' + keyDecoded}
r = requests.get('https://api.printful.com/sync/products', headers=header)
# packages_json = r.json()
test = r.json()
print(json.dumps(test, indent=4))
# print(test["name"])
如果您尝试打印 test
的类型,您将看到它是一个字典:
print(type(test)) # dict
print(print(test.keys()) # dict_keys(['code', 'result', 'extra', 'paging'])
我们需要提取 result
print(type(test["result"])) # <class 'list'>
print(len(test["result"])) # 3
print(type(test["result"][0])) # <class 'dict'>
在此我们将从字典中提取 name
:
print([n for i in test["result"] for k, n in i.items() if k == "name"])
输出:
['Snapback Hat', 'Short-Sleeve Unisex T-Shirt', 'Short-Sleeve Unisex T-Shirt']
我正在努力寻找一种方法来调用从以下代码生成的 JSON。 例如,如何调用 JSON 上可用的“名称”列表? Ps:不用担心 Printful 秘钥;这是一个测试帐户。
import json
import requests
import base64
key = 'xk7ov0my-t9vm-70z6:y491-2uyygexkkq6r'
key = base64.b64encode(bytes(key, 'utf-8'))
keyDecoded = key.decode('ascii')
header = {'Authorization': 'Basic ' + keyDecoded}
r = requests.get('https://api.printful.com/sync/products', headers=header)
# packages_json = r.json()
test = r.json()
print(json.dumps(test, indent=4))
# print(test["name"])
如果您尝试打印 test
的类型,您将看到它是一个字典:
print(type(test)) # dict
print(print(test.keys()) # dict_keys(['code', 'result', 'extra', 'paging'])
我们需要提取 result
print(type(test["result"])) # <class 'list'>
print(len(test["result"])) # 3
print(type(test["result"][0])) # <class 'dict'>
在此我们将从字典中提取 name
:
print([n for i in test["result"] for k, n in i.items() if k == "name"])
输出:
['Snapback Hat', 'Short-Sleeve Unisex T-Shirt', 'Short-Sleeve Unisex T-Shirt']