gpt4 book ai didi

python - 在 OSX 中通过 curl 美化 JSON

转载 作者:太空狗 更新时间:2023-10-29 20:39:52 28 4
gpt4 key购买 nike

我正在尝试美化来自 curl 的 JSON 响应,但它不起作用。

Narnia:~ vitaly$ curl -s https://api.vk.com/method/photos.getAlbums?uid=6015870&access_token=0275127e915981fe795840165e532169482cbdfc4ca1dbd48619a687a65fead88c468cdafe9743e231c37 | python -m json.tool
[4] 8822
No JSON object could be decoded
Narnia:~ vitaly$ {"response":[{"aid":"109967643","thumb_id":"163950716","owner_id":"6015870","title":"9 мая 2010","description":"","created":"1273613868","updated":"1273695901","size":7},{"aid":"95299056","thumb_id":"135702541","owner_id":"6015870","title":"Kemer 2009","description":"http:\/\/picasaweb.google.com.ua\/Ivanov.Vitalii\/Kemer2009","created":"1250355164","updated":"1250520619","size":72},{"aid":"43368938","thumb_id":"116630327","owner_id":"6015870","title":"Лето 2008 (Алупка)","description":"","created":"1220478168","updated":"1221348162","size":43},{"aid":"38630587","thumb_id":"116886016","owner_id":"6015870","title":"Flowers","description":"","created":"1217680400","updated":"1236774230","size":9},{"aid":"36658103","thumb_id":"163954451","owner_id":"6015870","title":"Моя ката","description":"","created":"1216419744","updated":"1273698620","size":8},{"aid":"23100962","thumb_id":"112723283","owner_id":"6015870","title":"Только пипл","description":"","created":"1208636545","updated":"1210382181","size":9},{"aid":"15473894","thumb_id":"114370266","owner_id":"6015870","title":"other","description":"","created":"1203516879","updated":"1327679223","size":29},{"aid":"15471241","thumb_id":"95266020","owner_id":"6015870","title":"Сам батя или чего нельзя в фотошопе =)","description":"","created":"1203516081","updated":"1203516728","size":4}]}
[4] Done curl -s https://api.vk.com/method/photos.getAlbums?uid=6015870
Narnia:~ vitaly$

为什么我收到“无法解码 JSON 对象”?我请求的网址总是返回有效的 json。如果我像 $ echo jsonreponse | 那样手动从响应中传递 json python -m json.tool,它确实美化了json。

我做错了什么吗?

最佳答案

您需要在您的 URL 两边加上引号:

curl -s "https://api.vk.com/method/photos.getAlbums?uid=6015870&access_token=0275127e915981fe795840165e532169482cbdfc4ca1dbd48619a687a65fead88c468cdafe9743e231c37" | python -m json.tool

& 字符是 shell 元字符,它将命令置于后台。因此,您没有将完整的 URL 传递给服务器,而是将命令 curl -s https://api.vk.com/method/photos.getAlbums?uid=6015870 放在后台.

这就是 shell 向您回显 [4] 8822 的原因;到目前为止,您将 第四个 作业放入作业队列,它的 PID 为 8822。

剩下的命令是:

access_token=0275127e915981fe795840165e532169482cbdfc4ca1dbd48619a687a65fead88c468cdafe9743e231c37 | python -m json.tool

这确实不会产生有效的 JSON:

$ access_token=0275127e915981fe795840165e532169482cbdfc4ca1dbd48619a687a65fead88c468cdafe9743e231c37 | python -m json.tool
No JSON object could be decoded

您可以在下一行看到您放入后台完成的作业:

Narnia:~ vitaly$ {"response":[{"aid":"109967643","thumb_id":"163950716","owner_id":"6015870","title":"9 мая 2010","description":"","created":"1273613868","updated":"1273695901","size":7},{"aid":"95299056","thumb_id":"135702541","owner_id":"6015870","title":"Kemer 2009","description":"http:\/\/picasaweb.google.com.ua\/Ivanov.Vitalii\/Kemer2009","created":"1250355164","updated":"1250520619","size":72},{"aid":"43368938","thumb_id":"116630327","owner_id":"6015870","title":"Лето 2008 (Алупка)","description":"","created":"1220478168","updated":"1221348162","size":43},{"aid":"38630587","thumb_id":"116886016","owner_id":"6015870","title":"Flowers","description":"","created":"1217680400","updated":"1236774230","size":9},{"aid":"36658103","thumb_id":"163954451","owner_id":"6015870","title":"Моя ката","description":"","created":"1216419744","updated":"1273698620","size":8},{"aid":"23100962","thumb_id":"112723283","owner_id":"6015870","title":"Только пипл","description":"","created":"1208636545","updated":"1210382181","size":9},{"aid":"15473894","thumb_id":"114370266","owner_id":"6015870","title":"other","description":"","created":"1203516879","updated":"1327679223","size":29},{"aid":"15471241","thumb_id":"95266020","owner_id":"6015870","title":"Сам батя или чего нельзя в фотошопе =)","description":"","created":"1203516081","updated":"1203516728","size":4}]}
[4] Done curl -s https://api.vk.com/method/photos.getAlbums?uid=6015870

使用命令生成的引号:

$ curl -s "https://api.vk.com/method/photos.getAlbums?uid=6015870&access_token=0275127e915981fe795840165e532169482cbdfc4ca1dbd48619a687a65fead88c468cdafe9743e231c37" | python -m json.tool
{
"error": {
"error_code": 5,
"error_msg": "User authorization failed: access_token was given to another ip address.",
"request_params": [
{
"key": "oauth",
"value": "1"
},
{
"key": "method",
"value": "photos.getAlbums"
},
{
"key": "uid",
"value": "6015870"
},
{
"key": "access_token",
"value": "0275127e915981fe795840165e532169482cbdfc4ca1dbd48619a687a65fead88c468cdafe9743e231c37"
}
]
}
}

大概对您来说,它会产生更多有用的信息,因为显然我没有适合我的 IP 地址的正确访问 token 。 :-)

关于python - 在 OSX 中通过 curl 美化 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15597785/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com