[英]How can I extract just one value from a json output?
我正在使用 python requests
从 API 检索数据,我只需要过滤掉一个值。
我是 JSON 的新手,希望有人能帮帮我。
下面是我的代码和返回的 output。 但是,我只需要“ motTests ”下的“ expiryDate ”的第一个案例,在这种情况下是“2022.04.05”。 我怎样才能过滤掉这个? 提前致谢。
我的代码:
import requests
url = "https://beta.check-mot.service.gov.uk/trade/vehicles/mot-tests"
headers = {
'Accept': 'application/json+v6',
'x-api-key': 'my_api_key'
}
resp = requests.get(url, headers=headers, params={'registration': 'YD14YCP'}
)
print(resp.content)
我收到的 output 是:
b'[{"registration":"YD14YCP","make":"BMW","model":"530","firstUsedDate":"2014.03.01","fuelType":"Diesel","primaryColour":"White","vehicleId":"YRVs92Gaddsa65jq2zD2Q==","registrationDate":"2014.03.01","manufactureDate":"2014.03.01","engineSize":"2993","motTests":[{"completedDate":"2021.03.25 14:09:25","testResult":"PASSED",**"expiryDate":"2022.04.05"**,"odometerValue":"63823","odometerUnit":"mi","motTestNumber":"5570263656619","odometerResultType":"READ","rfrAndComments":[]},{"completedDate":"2020.03.20 10:30:55","testResult":"PASSED","expiryDate":"2021.04.05","odometerValue":"57548","odometerUnit":"mi","motTestNumber":"8165169314","odometerResultType":"READ","rfrAndComm
ents":[{"text":"Rear Brake pad(s) wearing thin (1.1.13 (a) (ii))","type":"ADVISORY","dangerous":false},{"text":"Front Tyre worn close t
o legal limit/worn on edge both slightly worn on outer edge (5.2.3 (e))","type":"ADVISORY","dangerous":false}]},{"completedDate":"2019
.04.06 09:34:32","testResult":"PASSED","expiryDate":"2020.04.05","odometerValue":"47558","odometerUnit":"mi","motTestNumber":"403589926
352","odometerResultType":"READ","rfrAndComments":[]},{"completedDate":"2018.04.06 08:03:08","testResult":"PASSED","expiryDate":"2019.04.05","odometerValue":"41101","odometerUnit":"mi","motTestNumber":"946286448569","odometerResultType":"READ","rfrAndComments":[]},{"com
pletedDate":"2017.02.28 14:42:55","testResult":"PASSED","expiryDate":"2018.02.28","odometerValue":"28624","odometerUnit":"mi","motTestN
umber":"37263578588","odometerResultType":"READ","rfrAndComments":[{"text":"Offside Rear Tyre worn close to the legal limit 2-3mm (4.
1.E.1)","type":"ADVISORY","dangerous":false}]}]}]'
尝试这个:
import json
raw = '[{"registration":"YD14YCP","make":"BMW","model":"530","firstUsedDate":"2014.03.01","fuelType":"Diesel","primaryColour":"White","vehicleId":"YRVs92Gaddsa65jq2zD2Q==","registrationDate":"2014.03.01","manufactureDate":"2014.03.01","engineSize":"2993","motTests":[{"completedDate":"2021.03.25 14:09:25","testResult":"PASSED","expiryDate":"2022.04.05","odometerValue":"63823","odometerUnit":"mi","motTestNumber":"5570263656619","odometerResultType":"READ","rfrAndComments":[]},{"completedDate":"2020.03.20 10:30:55","testResult":"PASSED","expiryDate":"2021.04.05","odometerValue":"57548","odometerUnit":"mi","motTestNumber":"8165169314","odometerResultType":"READ","rfrAndComm ents":[{"text":"Rear Brake pad(s) wearing thin (1.1.13 (a) (ii))","type":"ADVISORY","dangerous":false},{"text":"Front Tyre worn close t o legal limit/worn on edge both slightly worn on outer edge (5.2.3 (e))","type":"ADVISORY","dangerous":false}]},{"completedDate":"2019 .04.06 09:34:32","testResult":"PASSED","expiryDate":"2020.04.05","odometerValue":"47558","odometerUnit":"mi","motTestNumber":"403589926 352","odometerResultType":"READ","rfrAndComments":[]},{"completedDate":"2018.04.06 08:03:08","testResult":"PASSED","expiryDate":"2019.04.05","odometerValue":"41101","odometerUnit":"mi","motTestNumber":"946286448569","odometerResultType":"READ","rfrAndComments":[]},{"com pletedDate":"2017.02.28 14:42:55","testResult":"PASSED","expiryDate":"2018.02.28","odometerValue":"28624","odometerUnit":"mi","motTestN umber":"37263578588","odometerResultType":"READ","rfrAndComments":[{"text":"Offside Rear Tyre worn close to the legal limit 2-3mm (4. 1.E.1)","type":"ADVISORY","dangerous":false}]}]}]'
res = json.loads(response)
print(res[0]["motTests"][0]["expiryDate"])
[出去]
'2022.04.05'
您可以这样做以仅打印您想要的值:
cookieJar = resp.cookies.get_dict()
print(cookieJar["registration"])
[输出]
YD14YCP
获取请求后检索所需数据的正确方法是获取值:
您上面的代码:
import requests
url = "https://beta.check-mot.service.gov.uk/trade/vehicles/mot-tests"
headers = {
'Accept': 'application/json+v6',
'x-api-key': 'my_api_key'
}
现在,
resp.json().get('KEY_ONE').get('KEY_TWO') # and so on
像这样的东西
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.