【发布时间】:2019-12-27 02:29:47
【问题描述】:
我正在尝试将 JSON 数据发布到远程主机。
当我打开文件并使用导入的 json 库中的 json.load 函数时,它会将所有 null 值转换为 None,所有 true 值为 True,所有 false 值为 False,以保留 Pythonic 字典格式。
而当我使用 read() 方法打开文件时,它会保留原始 json 值,因为整个文件被解释为字符串。如果数据没有丢失 json.load() 否则会提供的类似字典的属性,这会很好。
我有一种预感,远程主机无法解释转换后的值,并向我发送了一个 400 响应并带有格式错误的文本错误。
是否有用于加载 JSON 数据的函数或方法,所以 boolean 和 none 值不是 python 化的?或者在发布请求数据时可以做些什么?
import requests
import json
session = requests
key='REDACTED'
with open('create.json', encoding='utf-8') as json_file:
#DATA = json.load(json_file)
DATA = json_file.read()
HEADERS={
'Content-Type': 'application/json',
'Authorization': 'Bearer {0}'.format(key)
}
URL='https://api.digitalocean.com/v2/droplets'
x = session.post(url=URL,headers=HEADERS,data=DATA)
print(x.status_code)
print(json.loads(x.text))
【问题讨论】:
-
你试过
x.json()吗? -
使用
session.post(url=URL,headers=HEADERS,json=DATA) -
@juanpa.arrivillaga 是的,有效!
标签: python json python-3.x python-requests