如何通过Prestashop API使用python请求更新字段?在Prestashop 1.7

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何通过Prestashop API使用python请求更新字段?在Prestashop 1.7相关的知识,希望对你有一定的参考价值。

如果我想获得特定订单,我会这样做:

import requests, json
r = requests.get('https://mycompany.com/api/orders/4&ws_key=XXX&output_format=JSON')
print r

它工作正常。它提供了有关订单号4的所有信息。

问题是当我想要更新特定字段时,例如参考字段。如果我这样做:

data={'ws_key':'XXX',
      'output_format':'JSON',
      'reference': 'TEST'}
r = requests.post('https://mycompany.com/api/orders/4', data=data)
print r

我得到这个输出:

[401] Unauthorized

我试过这个其他选择:

headers = {'Authorization' : 'Basic XXX'}
data={'output_format':'JSON',
      'reference': 'TEST'}
r = requests.post('https://mycompany.com/api/orders/4', data=data, headers=headers)
print r

但结果相同:

[401] Unauthorized

我该如何修改该字段?

答案

正如您的第一个示例所示,您的参数应该在url而不是data中。所以你的代码就是

import requests
try:
    from urllib import parse
except Exception as e:
    import urllib as parse

payload = {'ws_key':'XXX',
      'output_format':'JSON'}
data = {'reference': 'TEST'}
url = 'https://mycompany.com/api/orders/4&{}'.format(parse.urlencode(payload))

r = requests.put(url,data=data)
print(r.url)

要么

payload = {'ws_key':'XXX',
      'output_format':'JSON',
      'reference': 'TEST'}
url = 'https://mycompany.com/api/orders/4&{}'.format(parse.urlencode(payload))

但正如文档所述,您应该放置XML文件而不是数据或json。

Prestashop Python API:https://github.com/prestapyt/prestapyt

以上是关于如何通过Prestashop API使用python请求更新字段?在Prestashop 1.7的主要内容,如果未能解决你的问题,请参考以下文章

使用 Python 向 API Prestashop 发送 POST 请求

在Prestashop API上创建订单:模块名称出错

如何从 Prestashop API 检索更多数据到我的颤振应用程序?

Prestashop安装教程2022

如何使用 Prestashop 实现 adwords 转换代码?

我想通过代码在 Prestashop 上添加 x 个客户,但有额外的字段