0

我有以下用 Delphi 编写的方法:

function acceptPutNF(const aJSONObject: TJSONObject; const aJSONArray: TJSONArray): TJSONObject;

我正在尝试发送 PUT 请求,但我不知道如何aJSONArray使用 python 指定第二个参数/对象数据。我试过这个:

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})

我在最后一条指令中收到一条错误消息...

4

2 回答 2

2

您传递给数据的内容应该被编码。您正在对这两个结构进行编码,然后围绕它构建一个未编码的结构。尝试这个

r = requests.put(url, data=json.dumps([nfe, nfe_itens])
于 2013-10-29T16:52:14.220 回答
0

我最终只使用了一个带有“子对象”的对象数据参数,然后我在我的服务器上管理它。我认为这是使用 JSON 提供的更多可用功能的更好方法。

于 2013-10-29T19:57:05.060 回答