cURL:在POST中从stdin发送零件数据

时间:2017-02-07 09:23:59

标签: python json curl stdin

我要制作2个cURL。 1卷曲的数据需要格式化和放大作为第二个cURL的输入发送。我尝试过以下方法:

  

卷曲-XPOST -H“内容类型:application / json”-d'{“a”:1,“b”:2}''https://a.com/a'| python -c“import json,sys; o = json.load(sys.stdin); o1 = dict(id = o ['foo'],hash = o ['bar']); print(json.dumps(o ));印刷(json.dumps(01));” | curl -XPOST -H“Content-type:application / json”https://a.com/b -d @ -

在上面的cURL组合中,我正在解析从第一个cURL通过python接收的数据,然后打印接收到的输出和放大器。在stdin上解析输出,然后从stdin获取输入作为第二个cURL的数据。

问题:有两个JSON正在stdin中打印,所有这些JSON都作为第二个cURL中的数据传递。如何从stdin中选择最后一行,它是应该在第二个cURL中传递的实际数据?

1 个答案:

答案 0 :(得分:0)

armnotstrong建议的一种可行方法帮助我做到了正确。虽然这是技术上,但不是问题的答案,但这是一个很好的解决方法。

我在错误流中打印我的输出,这些输出不需要发送到第二个cURL。以下是工作cURL:

  

卷曲-XPOST -H“内容类型:application / json”-d'{“a”:1,“b”:2}''https://a.com/a'| python -c“import json,sys; o = json.load(sys.stdin); o1 = dict(id = o ['foo'],hash = o ['bar']); sys.stderr.write(json) .dumps(O));印刷(json.dumps(01));” | curl -XPOST -H“Content-type:application / json”https://a.com/b -d @ -