Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Python发布json:不可序列化错误?_Python_Json_Python Requests - Fatal编程技术网

使用Python发布json:不可序列化错误?

使用Python发布json:不可序列化错误?,python,json,python-requests,Python,Json,Python Requests,尝试使用请求将json发布到指定的URL: import requests, glob, unicodedata, ntpath, time, json url = 'https://myWebsite.com/ext/ext/ext' json_file = open("/Users/ME/Documents/folder/folder/test.json") headers = {'Content-type': 'application/json', 'Accept': 'text/p

尝试使用请求将json发布到指定的URL:

import requests, glob, unicodedata, ntpath, time, json

url = 'https://myWebsite.com/ext/ext/ext'

json_file = open("/Users/ME/Documents/folder/folder/test.json")

headers = {'Content-type': 'application/json', 'Accept': 'text/plain'}

r = requests.post(url, data=json.dumps(json_file), headers=headers)
但是,这给了我以下错误:

TypeError: <open file '/Users/ME/Documents/folder/folder/test.json', mode 'r' at 0x1021c9660> is not JSON serializable
TypeError:不可序列化JSON
是什么导致了这个错误?我知道我的json文件是有效的json,所以我认为这不是问题所在

如果文件中已有有效的JSON文本,则不需要生成JSON。只需发送文件内容:

r = requests.post(url, data=json_file, headers=headers)
这将把打开文件的文件内容作为帖子正文发送,有效地流式传输数据

json.dumps()
仅当您有需要表示为json字符串的Python对象(如字符串、数字、布尔值、字典、列表等)时才需要。

如果文件中已经有有效的json文本,则无需生成json。只需发送文件内容:

r = requests.post(url, data=json_file, headers=headers)
这将把打开文件的文件内容作为帖子正文发送,有效地流式传输数据


json.dumps()
仅当需要将Python对象(如字符串、数字、布尔值、字典、列表等)表示为json字符串时才需要。

open
不返回文件内容,而是返回文件对象。尝试对
open
的返回值调用
read()
,以获取实际内容

查看您自己的错误:

TypeError: <open file '/Users/ME/Documents/folder/folder/test.json', mode 'r' at 0x1021c9660> is not JSON serializable

open
不返回文件内容,而是返回文件对象。尝试对
open
的返回值调用
read()
,以获取实际内容

查看您自己的错误:

TypeError: <open file '/Users/ME/Documents/folder/folder/test.json', mode 'r' at 0x1021c9660> is not JSON serializable

在这种情况下,根本不需要调用
.read()
data
获取一个文件对象,它将作为一个高效上传流式传输。是的,但json.dumps不希望文件作为参数。这就是为什么我想用.read()表示json。之后,我建议使用json重新验证NOPE,但这只是误解了
json.dumps()
的用途。是的,但这是另一个错误。我建议的解决方案是因为我认为他想重新验证文件中的json内容。OP写道:我知道我的json文件是有效的json,所以我认为这不是问题所在。在这种情况下,你根本不需要调用
.read()
data
获取一个文件对象,它将作为一个高效上传流式传输。是的,但json.dumps不希望文件作为参数。这就是为什么我想用.read()表示json。之后,我建议使用json重新验证NOPE,但这只是误解了
json.dumps()
的用途。是的,但这是另一个错误。我建议的解决方案是因为我认为他想重新验证文件中的json内容。OP写道:我知道我的json文件是有效的json,所以我认为这不是问题。这听起来对我很有用。这听起来对我很有用。