Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/277.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中将URL参数转换为JSON(dict)_Python - Fatal编程技术网

如何使用简洁的代码在Python中将URL参数转换为JSON(dict)

如何使用简洁的代码在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中的现有文件

我有一个带有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中的现有文件中,.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字符串来自哪里?