将嵌套字典传递给请求modu

2024-10-01 02:23:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个嵌套字典,我想把它传递给一个web服务(用PHP编写),但是由于无法访问所需的数据,我正在努力工作。在

这本字典看起来像

import requests
from nested_dict import nested_dict

data = nested_dict()

data['name'] = 'test'

data['cookies']['PHPSESSID']['name'] = 'PHPSESSID'
data['cookies']['PHPSESSID']['essential'] = 'Essential'

data['cookies']['CookieNotice']['name'] = 'CookieNotice'
data['cookies']['CookieNotice']['essential'] = 'Essential'

然后我请求:

^{pr2}$

在接收url中someurl.com网站(用PHP编写),我可以访问第一级,没问题

header('Content-Type: application/json');
$data = $_REQUEST;
$response['content'] = $data['name'];
$response = $response['content'];
echo json_encode($response);

问题是试图访问嵌套dict中的数据。我不知道它在命中时是以什么形式到达的someurl.com网站,因此我不能用它来生成循环。我想做的是:

header('Content-Type: application/json');
$data = $_REQUEST;
$response['content'] = $data['name'];
  foreach ($data['cookies'] as $k => $v):
  $response['content'] .= $k." ".$v;
endforeach;

$response = $response['content'];
echo json_encode($response);

当在模板中打印出响应时,有嵌套部分的内容。。。在

非常感谢任何帮助!在

更新

我试过很多种排列方式,但仍在挣扎!我只需要能够将嵌套的dict(或json)传递到我的接收url'someurl.com网站'并且能够在PHP中(json)解码,例如$d=json\u decode($\u POST)

这“有效”,但我无法对响应“做”任何事情:

dat = json.dumps(data)
req = requests.get('someurl.com',params=dat)

我什么也做不了请求.post,如果我传递原始字典或将其转换为json。在

非常感谢


Tags: namecomjsondata字典网站responsecontent
1条回答
网友
1楼 · 发布于 2024-10-01 02:23:49

对我有效的解决方案如下:

import requests,json
from nested_dict import nested_dict

data = nested_dict()

data['name'] = 'test'

data['cookies']['PHPSESSID']['name'] = 'PHPSESSID'
data['cookies']['PHPSESSID']['essential'] = 'Essential'

data['cookies']['CookieNotice']['name'] = 'CookieNotice'
data['cookies']['CookieNotice']['essential'] = 'Essential'

datajson = json.dumps(data)

req = requests.post('someurl.com/myendpoint.php',data={'payload':datajson},timeout=3.00)

然后在PHP脚本中someurl.com/myendpoint.php我就可以使用$帖子了

^{pr2}$

相关问题 更多 >