我正在尝试检索单个订单下的多个项目的标题。 在“ line_items”下可以有多个小节,用于显示每个项目的信息,标题是每个项目的参数之一。
[0]带给我第一项标题。
[-1]带给我最后一个标题。
如何与之间的小节进行交互?有没有一种方法可以返回所有关联的订单标题(无论是否有1个或更多)?
r = requests.get("jsonURL", params="jsonparams")
data = r.json()
for item in data['orders']:
purchased = item['line_items'][0]['title']
purchased1 = item['line_items'][-1]['title']
答案 0 :(得分:0)
您可以通过添加如下所示的内部循环来做到这一点:
r = requests.get("jsonURL", params="jsonparams")
data = r.json()
for items in data['orders']:
for item in items['line_items']:
print(item['title'])
这将打印出每个订单中商品的标题。
如果只想打印出一部分项目,则可以在items['line_items']
上使用切片。如果只想打印前n
个项目,则应写items['line_items'][:n]
。如果只想打印最后的n
个项目,则可以写items['line_items'][-n]
。您甚至可以将两者结合使用,例如items['line_items'][1:-2]
将跳过列表中的前两项和后两项。
答案 1 :(得分:0)
希望这对您有所帮助。
r = requests.get("jsonURL", params="jsonparams")
data = r.json()
result = [items['items'] for items in data['orders']['line_items']]
如果要获取第一个索引:
print(result[0])
如果要获取第一个索引:
print(result[-1])
答案 2 :(得分:0)
代码中的JSON看起来像这样:
data = {
"orders": {
"line_items": [
{
"title": "abc"
},
{
"title": "def"
},
{
"title": "ghi"
},
{
"title": "jkl"
},
{
"title": "mno"
}
]
}
}
因此,为了获得所有项目的标题,请遍历line_items
列表中的每个项目,查找'title'键,并将其值附加到名为purchased
的空列表中:< / p>
purchased = []
for item in data['orders']['line_items']:
if 'title' in item.keys():
purchased.append(item['title'])
print(purchased)
#Output:
['abc', 'def', 'ghi', 'jkl', 'mno']
如果您还希望购买每件商品的数量,则可以使用Counter
:
from collections import Counter
print(Counter(purchased))
#Output:
Counter({'abc': 1, 'def': 1, 'ghi': 1, 'jkl': 1, 'mno': 1})