通过 bash 中 Json 条记录的 cURL 集迭代发布
Iteratively posting via cURL set of Json records in bash
我在文件中有 Json 组记录。我想 post 迭代。
例如文件 "jsondata.dat" 包含以下 json 条记录
{
"json_records":[
{
"name": "name_1",
"mark": "mark_1"
},
{
"name": "name_2",
"mark": "mark_2"
}
]
}
我想 post 每条 json 条记录,即
{
"name": "name_X",
"mark": "mark_X"
}
在单独的 cURL 中 post。如何在 bash 中实现这一点?
我宁愿使用这样的 python 脚本预处理您的文件以提取每条记录:
#!/usr/bin/env python
import json
i = 0
for record in json.load(open('raw.json', 'r'))['json_records']:
open('record_{}.json'.format(i), 'w').write(json.dumps(record))
i += 1
然后用 curl 分别处理每个 record_X.json:
curl host -d recrod_X.json
我会使用 jq
将每条记录作为一行,然后使用 while
循环读取该输出以传递给 curl
.
jq -c '.json_records[]' | while IFS= read -r rec; do
curl -X POST -d"$rec" "$URL"
done
试试这个 -
vipin@kali:~$ egrep 'name|mark' kk -A 1 -B 1 ###A for Above and B for Below
{
"name": "name_1",
"mark": "mark_1"
},
{
"name": "name_2",
"mark": "mark_2"
},
我在文件中有 Json 组记录。我想 post 迭代。 例如文件 "jsondata.dat" 包含以下 json 条记录
{
"json_records":[
{
"name": "name_1",
"mark": "mark_1"
},
{
"name": "name_2",
"mark": "mark_2"
}
]
}
我想 post 每条 json 条记录,即
{
"name": "name_X",
"mark": "mark_X"
}
在单独的 cURL 中 post。如何在 bash 中实现这一点?
我宁愿使用这样的 python 脚本预处理您的文件以提取每条记录:
#!/usr/bin/env python
import json
i = 0
for record in json.load(open('raw.json', 'r'))['json_records']:
open('record_{}.json'.format(i), 'w').write(json.dumps(record))
i += 1
然后用 curl 分别处理每个 record_X.json:
curl host -d recrod_X.json
我会使用 jq
将每条记录作为一行,然后使用 while
循环读取该输出以传递给 curl
.
jq -c '.json_records[]' | while IFS= read -r rec; do
curl -X POST -d"$rec" "$URL"
done
试试这个 -
vipin@kali:~$ egrep 'name|mark' kk -A 1 -B 1 ###A for Above and B for Below
{
"name": "name_1",
"mark": "mark_1"
},
{
"name": "name_2",
"mark": "mark_2"
},