Python 如何在PUT请求中传递两个对象数据?
我在Delphi中编写了以下方法:Python 如何在PUT请求中传递两个对象数据?,python,http,request,python-requests,Python,Http,Request,Python Requests,我在Delphi中编写了以下方法: 函数acceptPutNF(const aJSONObject:TJSONObject;const aJSONArray:TJSONArray):TJSONObject 我试图发送一个PUT请求,但我不知道如何使用python指定第二个参数/对象数据aJSONArray。我试过这个: nfe = {'CodigoUsuario':1,'CodigoEmpresa':1,'Originario':'1','CodigoCliente':1,'CodigoTran
函数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})
我在上一条指令中收到错误消息 传递给数据的内容应该进行编码。您正在对这两个结构进行编码,然后围绕它构建一个未编码的结构。试试这个
r = requests.put(url, data=json.dumps([nfe, nfe_itens])
我最终只使用了一个带有“子对象”的对象数据参数,然后在服务器上管理它。我认为这是更好地使用JSON提供的更多可用功能的方法。您能添加错误消息吗?我认为这与传递一个参数,后跟一个关键字参数有关,但我仍然在学习Pythonwell@JasonSperske:不,您在传递集合,而不是字典。错误:文件“C:\Program Files\eclipse workspace\test\src\FirstModule.py”,第50行,r2=requests.put(url2,数据={nfe_编码,nfe_itens_编码})
@JasonSperske:这意味着调用方法时,数据
关键字参数被赋予了一个集
值。请求
代码无法处理集
值。谢谢@cmd,但不起作用。没有例外,但在我的Delphi函数中,无法访问数据对象。我得到了一个de>访问冲突
查看打印json.dumps([nfe,nfe_itens])的结果:所有结果都是通过一个数组:[{“NaturezaOperacao”:“1”,…,“CodigoEmpresa”:1},[{“descontoinitario”:1,…,“CodigoProduto”:1}]
这会导致一个错误。@LucasMedeiros您的delphi希望数据看起来如何?