我在Delphi中使用以下方法编写:
function acceptPutNF(const aJSONObject: TJSONObject; const aJSONArray: TJSONArray): TJSONObject;
我正在尝试发送PUT请求,但我不知道如何使用python指定第二个参数/对象数据aJSONArray
。我试过这个:
nfe = {'CodigoUsuario':1,'CodigoEmpresa':1,'Originario':'1','CodigoCliente':1,'CodigoTransportador':1,'NaturezaOperacao':'1',
'IndicadorPagamento':'1','ValorFrete':1,'ValorSeguro':1,'ValorOutrasDespesas':1,'ValorProdutosServicos':1,'ValorDescontoGlobal':1,'nformacoesContr':None}
nfe_itens = [{'CodigoProduto':1,'CodigoGradeProduto':1,'Quantidade':1,'ValorUnitario':1,'DescontoUnitario':1}]
nfe_encoded = json.dumps(nfe)
nfe_itens_encoded = json.dumps(nfe_itens)
print nfe_encoded
url = 'http://localhost:88/datasnap/rest/TServerMethods/PutNF'
r = requests.put(url, data={nfe_encoded, nfe_itens_encoded})
我在上一条指令中收到错误信息......
答案 0 :(得分:2)
您传递给数据的内容应该进行编码。您正在编码这两个结构,然后围绕它构建一个未编码的结构。试试这个
r = requests.put(url, data=json.dumps([nfe, nfe_itens])
答案 1 :(得分:0)
我最终只使用一个带有“子对象”的对象数据参数,然后在我的服务器上管理它。我认为这是使用JSON提供的更多可用功能的更好方法。