1

用 Python 向 CF Workers KV写入大量内容PUT,但无法弄清楚这里出了什么问题。据我所知,我的 JSON 是有效的。

这是我得到的错误

错误

{ "result": null, "success": false, "errors": [ { "code": 10012, "message": "could not parse array of key/value objects from request body: 'could not unmarshal KVPair into intermediate struct: 'json: cannot unmarshal object into Go struct field kvPairJSON.value of type string''" } ], "messages": [] }

有效载荷

[{ “key”:“aals”, “value”:{ “sup”:{ “firo”:“aals”, “mean”:“aals”, “alpha”:[]}}}]

代码

response = requests.put(f"{CF_BASEURL}/bulk", headers=headers, data=json.dumps(payload))

任何想法表示赞赏。我确定这是一个 SMH 时刻......

4

1 回答 1

2

这是一个无用的错误消息,对此感到抱歉。Workers KV 值是纯字节,如果需要可以在 Worker 中反序列化(例如,解析为 JSON)。我想你想做的只是,

import json
payload = [{ "key": "aals", "value": json.dumps('{"sup": {"firo": "aals", "mean": "aals", "alpha": []}}')}]

这样您的值就被编码为字符串。然后在你的 Worker 中,你可以,

let jsonValue = KV_NAMESPACE.get("aals", "json");
于 2020-10-07T20:37:12.637 回答