如何使用简洁的代码在Python中将URL参数转换为JSON(dict)
我有一个带有JSON编码参数的URL:如何使用简洁的代码在Python中将URL参数转换为JSON(dict),python,Python,我有一个带有JSON编码参数的URL: http://host/endpoint?cart%5B4887%5D=3&cart%5B2576%5D=2&cart%5B2519%5D=4 使用unquote(request.url)(Flask)后,我得到: 此URL来自WordPress插件的.php函数。之所以使用带有URL参数的GET而不是POST,是因为我需要通过插件将数据发送到外部API,而无需触摸/修改WordPress中的任何现有文件。在WordPress中的现有文件
http://host/endpoint?cart%5B4887%5D=3&cart%5B2576%5D=2&cart%5B2519%5D=4
使用unquote(request.url)
(Flask)后,我得到:
此URL来自WordPress插件的.php函数。之所以使用带有URL参数的GET而不是POST,是因为我需要通过插件将数据发送到外部API,而无需触摸/修改WordPress中的任何现有文件。在WordPress中的现有文件中,.php文件指定了要发布的wp端点
$cart_items_arr = array("4887"=>3, "2576"=>2, "2519"=4);
$url = add_query_arg( array("cart" => $cart_items_arr), URL);
我想从URL中提取的输出是
{
"4887": 3,
"2576": 2,
"2519": 4
}
将字符串转换为字典的整洁方法是什么?您可以使用regex来实现大部分功能:
重新导入
str='http://host/endpoint?cart[4887]=3&购物车[2576]=2&购物车[2519]=4'
关于findall(“\[(\d+)\]=(\d+),str)\[('4887','3'),('2576','2'),('2519','4')]
您应该能够轻松地将其映射到所需的词典中。您可以使用regex来实现以下目的:
重新导入
str='http://host/endpoint?cart[4887]=3&购物车[2576]=2&购物车[2519]=4'
关于findall(“\[(\d+)\]=(\d+),str)\[('4887','3'),('2576','2'),('2519','4')]
您应该能够轻松地将其映射到所需的词典中。看起来
cart
是一致的,然后您可以使用循环将其剥离:
{k.strip('cart[]'): v for k, v in request.args.items()}
看起来
cart
是一致的,那么您可以使用一个循环来剥离它们:
{k.strip('cart[]'): v for k, v in request.args.items()}
这些不是JSON编码的参数。URL字符串来自哪里?这些不是JSON编码的参数。URL字符串来自哪里?