当我 post a JSON 使用 Mercado Libre 的 API 时,所有重音字母都被删除,我认为这不是默认行为
When I post a JSON while using Mercado Libre's API all accented letters are removed and I don't think this is the default behavior
问题
我正在使用巴西版的 Mercado Libre API 来发布产品。每当我 post 一个 JSON 时,重音符号就会被他们的系统删除,我认为 根本不应该是默认行为 因为葡萄牙语有所有这些口音。他们的 API 文档没有提及任何相关内容。
我尝试了什么
我尝试以各种方式对它进行多次编码和解码,并使用带和不带 json.dumps() 的 UTF-8 和 latin1。
我最后一次尝试添加:
headers['Content-Type'] = "application/json;charset=UTF-8"
所有这一切都没有完全消失,重音字母被转义序列取代,例如:
Curto a Médio -> Curto a M\xe9dio
我也试过没有“charset=UTF-8”部分,但重音仍然被转义了。
代码
headers = {
'Authorization': f"Bearer {ACCESS_TOKEN}",
}
if request_type == 'Product upload':
headers['Content-Type'] = "application/json;"
response = requests.post(url, headers=headers, data=data)
数据
[
{
"id":"GENDER",
"value_name":"Mulher"
},
{
"id":"BRAND",
"value_name":"Torricella"
},
{
"id":"MODEL",
"value_name":"65019A"
},
{
"id":"FOOTWEAR_TYPE",
"value_name":"Botas"
},
{
"id":"FOOTWEAR_STYLE",
"value_name":"Bota Bico Fino"
},
{
"id":"SHAFT_TYPE",
"value_name":"Curto a Médio"
},
{
"id":"RELEASE_SEASON",
"value_name":"Primavera/Verão"
},
{
"id":"RELEASE_YEAR",
"value_name":2021
}
]
很遗憾,他们不向非官方合作伙伴提供任何形式的支持。
我还能尝试什么?我认为这不太可能是他们 API 的问题,因为他们价值 4 十亿美元而且他们的 API 已经存在了很长时间。
使用 json.dumps(data)
而没有 ensure_ascii=False
有效!
确实,如果 ensure_ascii=True
(默认值),输出将保证所有传入的非 ASCII 字符都正确转义。
问题
我正在使用巴西版的 Mercado Libre API 来发布产品。每当我 post 一个 JSON 时,重音符号就会被他们的系统删除,我认为 根本不应该是默认行为 因为葡萄牙语有所有这些口音。他们的 API 文档没有提及任何相关内容。
我尝试了什么
我尝试以各种方式对它进行多次编码和解码,并使用带和不带 json.dumps() 的 UTF-8 和 latin1。
我最后一次尝试添加:
headers['Content-Type'] = "application/json;charset=UTF-8"
所有这一切都没有完全消失,重音字母被转义序列取代,例如:
Curto a Médio -> Curto a M\xe9dio
我也试过没有“charset=UTF-8”部分,但重音仍然被转义了。
代码
headers = {
'Authorization': f"Bearer {ACCESS_TOKEN}",
}
if request_type == 'Product upload':
headers['Content-Type'] = "application/json;"
response = requests.post(url, headers=headers, data=data)
数据
[
{
"id":"GENDER",
"value_name":"Mulher"
},
{
"id":"BRAND",
"value_name":"Torricella"
},
{
"id":"MODEL",
"value_name":"65019A"
},
{
"id":"FOOTWEAR_TYPE",
"value_name":"Botas"
},
{
"id":"FOOTWEAR_STYLE",
"value_name":"Bota Bico Fino"
},
{
"id":"SHAFT_TYPE",
"value_name":"Curto a Médio"
},
{
"id":"RELEASE_SEASON",
"value_name":"Primavera/Verão"
},
{
"id":"RELEASE_YEAR",
"value_name":2021
}
]
很遗憾,他们不向非官方合作伙伴提供任何形式的支持。
我还能尝试什么?我认为这不太可能是他们 API 的问题,因为他们价值 4 十亿美元而且他们的 API 已经存在了很长时间。
使用 json.dumps(data)
而没有 ensure_ascii=False
有效!
确实,如果 ensure_ascii=True
(默认值),输出将保证所有传入的非 ASCII 字符都正确转义。