我还是Python新手,此时我正在尝试GET请求,只显示一个特定字符串的值。
import requests
import json
response = requests.get("APIURL")
data = response.text
parsed = json.loads(data)
id = parsed["products"][0]["id"]
print(id)
正如你在上面的代码中看到的那样,我还没有for循环,已经尝试了不同的东西,但仍然没有让它工作。通过上面的代码,我得到了' id'只有第一个产品,其他产品我没有得到结果。
从JSON加载的dict
的打印输出如下所示:
{
products: [
{
id: 66057248,
createdAt: "2018-02-28T14:55:22+01:00",
updatedAt: "2018-02-28T14:55:22+01:00",
isVisible: true,
visibility: "visible",
hasMatrix: false
}
]
}
答案 0 :(得分:1)
你可以这样做:
for product in parsed:
for index in parsed[product]:
for element in parsed[product][index]:
print(element.id)
print(element.createdAt)
# ...
在Simon的回答中,循环中的id
值实际上是'id'
,'createdAt'
等。要仅打印ID,因为它建议您需要断言密钥是否等于'id'
,是什么让循环无用。
注意:建议不要将id
用作变量名。这是一个保留字,在这种情况下,您可以添加下划线来代替id_
。
答案 1 :(得分:1)
diek的解决方案对我有用,因此我编辑了我的帖子。更好的代码是:
import requests
import json
response = requests.get("")
data =response.text
parsed=json.loads(data)
for product in parsed['products']:
print(product['id'])
输出结果如下:
66057248
66057245
66057242
66057239
66057236
66057233
66057230
66057227
66057224
答案 2 :(得分:0)
Json使用字典,因此您可以使用keys()
获取所有可能的值,然后通过它们进行反复识别:
for id in parsed["products"][0].keys():
print(parsed["products"][0][id])
想出来:
这不是json。它是YAML(因为你的代码缺少"
(语音标记))。您需要一个YAML解析器来运行它。一旦你有,它将正确运行。