2024-09-27 18:00:39 发布
网友
我正在处理一个第三方套接字API,在这里我得到一个字符串响应并将其转换为JSON
示例:
id=1000&name=Foo Bar
我尝试了split('&')和parse_qsl以获得结果(作为键、值)。问题是,对于某些记录,该值包含&
split('&')
parse_qsl
&
示例
id=1000&name=Foo Bar & Bros
因此& Bros将被视为空值。知道如何将其作为名称键的一部分进行解析吗
& Bros
有趣。问题是具有“foobar&;Bros”值的字符串不是有效的查询字符串;需要对空格和(文本)符号进行编码
但是,假设1)您提到的“第三方套接字API”以这种不完整的形式提供给您,2)文本符号周围总是有一个空格,您可以这样做:
def handle_ampersand_values(pseudo_querystring): ENCODED_TEXTUAL_AMPERSAND = " AMPERSAND " RAW_TEXTUAL_AMPERSAND = " & " encoded_ampersands = pseudo_querystring.replace(RAW_TEXTUAL_AMPERSAND, ENCODED_TEXTUAL_AMPERSAND) kv_segments = encoded_ampersands.split("&") kv_pairs = [segment.split("=") for segment in kv_segments] return {k: v.replace(ENCODED_TEXTUAL_AMPERSAND, RAW_TEXTUAL_AMPERSAND) for k, v in kv_pairs} print(handle_ampersand_values("id=1000&name=Foo Bar & Bros")) {'id': '1000', 'name': 'Foo Bar & Bros'}
有趣。问题是具有“foobar&;Bros”值的字符串不是有效的查询字符串;需要对空格和(文本)符号进行编码
但是,假设1)您提到的“第三方套接字API”以这种不完整的形式提供给您,2)文本符号周围总是有一个空格,您可以这样做:
相关问题 更多 >
编程相关推荐