Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/315.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 如何从内容类型中避免charset=utf-8?_Python_Json_Aiohttp - Fatal编程技术网

Python 如何从内容类型中避免charset=utf-8?

Python 如何从内容类型中避免charset=utf-8?,python,json,aiohttp,Python,Json,Aiohttp,在响应中返回JSON数据是一种常见情况,aiohttp.web提供了返回JSON的快捷方式–aiohttp.web.JSON\u response(): 快捷方式方法返回aiohttp.web.Response实例,因此我们可以在从处理程序返回之前设置cookies 但是我的curl请求返回我内容类型:application/json;charset=utf-8,但我只需要application/json,如何避免charset=utf-8?为什么要在内容类型中避免charset=utf-8?如

在响应中返回JSON数据是一种常见情况,
aiohttp.web
提供了返回JSON的快捷方式–
aiohttp.web.JSON\u response()

快捷方式方法返回
aiohttp.web.Response
实例,因此我们可以在从处理程序返回之前设置cookies


但是我的curl请求返回我
内容类型:application/json;charset=utf-8
,但我只需要
application/json
,如何避免
charset=utf-8

为什么要在内容类型中避免
charset=utf-8
?如果未指定,则自开始,回退(默认值)将为
ISO-8859-1

您的问题的实际答案是:当前的aiohttp版本不支持使用
json\u response
快捷方式函数更改字符集。即使不指定字符集而直接使用
aiohttp.web.Response
,也会将
charset=utf8
添加到响应的内容类型中。您可以更改字符集,但不能忽略它(除非
aiohttp.web.Response的
text
参数设置为None)

要使用
json\u response
更改字符集,可以执行以下操作:

web.json_response(
    data,
    content_type=None,
    headers={aiohttp.hdrs.CONTENT_TYPE: 'application/json; charset=ISO-8859-1'},
)
或者使用
functools.partial
来避免每次重复此长函数调用:

my_json_resp = partial(
    web.json_response, 
    content_type=None,
    headers={aiohttp.hdrs.CONTENT_TYPE: 'application/json; charset=ISO-8859-1'},
)

# later in your app
return my_json_resp(data)
您可以查看
json\u response
response的源代码。\uuuuu init\uuuu
,自己检查一下

my_json_resp = partial(
    web.json_response, 
    content_type=None,
    headers={aiohttp.hdrs.CONTENT_TYPE: 'application/json; charset=ISO-8859-1'},
)

# later in your app
return my_json_resp(data)