Python запросов. POSTing JSON NameError для логического значения - PullRequest
0 голосов
/ 12 апреля 2020

Я пытаюсь отправить JSON контент в API, используя Python и запросы, но я получаю NameError, потому что мой JSON содержит логическое значение.

Я пытался с urllib3 и просто запросами, и оба отображают одинаковое поведение.

"enabled": true,
NameError: name 'true' is not defined

Я встраиваю в docker:

FROM python:slim

ADD script.py requirements.txt ./

RUN pip install -r requirements.txt

# Run app.py when the container launches
CMD ["python", "script.py"]

needs.txt

requests==v2.23.0
urllib3==1.25.8

script.py

#import urllib3
import json

resp = req.post('https://example.com/api/endPoint',
  json={
      "name": "myName",
      "rules": [{
        "type": "foo",
        "enabled": true}]
  })

1 Ответ

1 голос
/ 12 апреля 2020

Как уже упоминалось @andreis, попробуйте использовать логическое значение True в приведенном ниже фрагменте. В python логическое значение true записывается как True

#import urllib3
import json

resp = req.post('https://example.com/api/endPoint',
  json={
      "name": "myName",
      "rules": [{
        "type": "foo",
        "enabled": True}]  # from true to True
  })

https://docs.python.org/3/library/functions.html?highlight=bool#bool

...