如何从 Json 输出中获取 keys/value 嵌套在元组中的对象?
how to get the object with keys/value nested inside tuple from a Json output?
如何从 Json 数据中获取 keys/value 嵌套在元组中的对象?我一直在尝试为 api 请求获取以下 Json 输出并加载 Json 输出 - 但我最终遇到了这个错误
the JSON object must be str, bytes or bytearray, not tuple
我写了这样的代码:
output = json.loads(output)
print(output)
我得到的输出
('{\n "architecture" : "x86_64",\n "billingProducts" : null,\n "devpayProductCodes" : null,\n "marketplaceProductCodes" : null,\n "imageId" : "****",\n "instanceId" : "***",\n "instanceType" : "t3.2xlarge",\n "kernelId" : null,\n "pendingTime" : "2022-05-19T17:32:35Z",\n "privateIp" : "***",\n "ramdiskId" : null,\n "version" : "2017-09-30"\n}', ' % Total % Received % Xferd Average Speed Time Time Time Current\n Dload Upload Total Spent Left Speed\n\n 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0\n100 56 100 56 0 0 56000 0 --:--:-- --:--:-- --:--:-- 56000\n % Total % Received % Xferd Average Speed Time Time Time Current\n Dload Upload Total Spent Left Speed\n\n 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0\n100 479 100 479 0 0 467k 0 --:--:-- --:--:-- --:--:-- 467k\n')
output = json.loads(output)
File "/usr/lib/python3.8/json/__init__.py", line 341, in loads
raise TypeError(f'the JSON object must be str, bytes or bytearray, '
TypeError: the JSON object must be str, bytes or bytearray, not tuple
如错误所述,变量 output
必须是 bytes
、string
或 bytearray
.
类型
如果我们深入观察,元组实际上只包含一个 string
元素。所以,我相信我们应该得到 string
元素!
我们可以这样做:
output = json.loads(output)[0] # Tuples are just like arrays
所以,现在变量 output
的类型是 string
!
如果这不起作用,也许可以尝试重命名 output
变量:
variable = json.loads(output)[0]
抱歉,如果这不正确!
根据之前的回答,几乎是正确的。必须是
output = json.loads(output[0])
如何从 Json 数据中获取 keys/value 嵌套在元组中的对象?我一直在尝试为 api 请求获取以下 Json 输出并加载 Json 输出 - 但我最终遇到了这个错误
the JSON object must be str, bytes or bytearray, not tuple
我写了这样的代码:
output = json.loads(output)
print(output)
我得到的输出
('{\n "architecture" : "x86_64",\n "billingProducts" : null,\n "devpayProductCodes" : null,\n "marketplaceProductCodes" : null,\n "imageId" : "****",\n "instanceId" : "***",\n "instanceType" : "t3.2xlarge",\n "kernelId" : null,\n "pendingTime" : "2022-05-19T17:32:35Z",\n "privateIp" : "***",\n "ramdiskId" : null,\n "version" : "2017-09-30"\n}', ' % Total % Received % Xferd Average Speed Time Time Time Current\n Dload Upload Total Spent Left Speed\n\n 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0\n100 56 100 56 0 0 56000 0 --:--:-- --:--:-- --:--:-- 56000\n % Total % Received % Xferd Average Speed Time Time Time Current\n Dload Upload Total Spent Left Speed\n\n 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0\n100 479 100 479 0 0 467k 0 --:--:-- --:--:-- --:--:-- 467k\n')
output = json.loads(output)
File "/usr/lib/python3.8/json/__init__.py", line 341, in loads
raise TypeError(f'the JSON object must be str, bytes or bytearray, '
TypeError: the JSON object must be str, bytes or bytearray, not tuple
如错误所述,变量 output
必须是 bytes
、string
或 bytearray
.
如果我们深入观察,元组实际上只包含一个 string
元素。所以,我相信我们应该得到 string
元素!
我们可以这样做:
output = json.loads(output)[0] # Tuples are just like arrays
所以,现在变量 output
的类型是 string
!
如果这不起作用,也许可以尝试重命名 output
变量:
variable = json.loads(output)[0]
抱歉,如果这不正确!
根据之前的回答,几乎是正确的。必须是
output = json.loads(output[0])