You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP调用API报Expected a list of items but got type dict错误排查

你的判断完全正确,问题就出在entities字段的嵌套结构不符合接口要求。

问题原因

错误提示Expected a list of items but got type "dict"已经明确说明:接口期望该字段接收列表类型(对应PHP的索引数组、JSON的[]结构),但你当前传递的是字典类型(对应PHP的关联数组、JSON的{}结构)。
你当前的entities赋值:

"entities" => [ "property_id" => 89835 ]

在请求时会被序列化为"entities": {"property_id": 89835},属于对象结构,不符合接口对列表类型的要求。

修复方案

把实体对象包在一层索引数组里即可,修改后代码如下:

$data = array(
    "from_date" => "2021-11-10",
    "to_date" => "2021-11-21",
    "adults" => 1,
    "guest_id" => 2954339,
    "stay_type" => "GUEST",
    "entities" => [ [ "property_id" => 89835 ] ]
);
$reservation = fetch_api('reservations', '', 'POST', $data);

修改后的entities序列化后为"entities": [{"property_id": 89835}],符合列表类型要求。

验证建议

你可以在fetch_api函数中增加请求参数序列化后的日志输出,和接口文档要求的格式做对比,就能快速定位这类格式问题。你调用无嵌套数组的接口正常,说明基础请求逻辑没有问题,调整结构后即可正常请求。


内容的提问来源于stack exchange,提问作者stemon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 02:57:03