Python 从curl命令序列化JSON结果
我有一个Python 从curl命令序列化JSON结果,python,json,bash,curl,Python,Json,Bash,Curl,我有一个GETcurl命令,它与API对话并返回一个网络列表,如下所示。我希望能够使用BASH或Python提取这些信息 [ { "id": "L_XXFS", "name": "Terrys_Pizza", "timeZone": "US/Central", }, { "id": "L_52GF", "name": "Clean_Juice", "time
GET
curl命令,它与API对话并返回一个网络列表,如下所示。我希望能够使用BASH或Python提取这些信息
[
{
"id": "L_XXFS",
"name": "Terrys_Pizza",
"timeZone": "US/Central",
},
{
"id": "L_52GF",
"name": "Clean_Juice",
"timeZone": "America/New_York",
},
{
"id": "L_5999",
"name": "JJ_Fish",
"timeZone": "US/Central",
}
]
提取每个网络信息的最佳方法是什么,同时将这些信息分组(对于{}
的每个实例),以便我可以提取/分配变量并在每个网络上工作
例如,Terry's Pizzaid:L_XXFS
的值必须知道它连接到Terry's Pizza,而不是任何其他网络
每次我的呼叫都会返回不同数量的网络,因此不能硬编码。如果您从
curl
获取输出,我将通过以下方式处理信息:
curl ... | jq -r '.[]|.name+":"+.id'
你试过什么吗?发布一些您尝试过的代码会有所帮助。否则问题就太广泛了。我建议在命令行上使用“…并在每个网络上工作”。您几乎肯定希望在Python中实现这一点。除非你能在
jq
中完成这项工作,否则你在bash
中实际能做的最多的事情就是显示JSON。这非常有效。我要补充的是,jq
能够在返回中找到对象的长度。我使用curl…|jq-r'|长度“
并将该值分配给总网络
,然后使用curl…|迭代网络jq-r'.['“$i”]>networkvalues.txt
在for
循环中。我通过在文件上使用sed
来分配值。