Массовый ВВОД API Cloudflare KV — ошибка 10012 — не удалось разархивировать KVPair в промежуточную структуру

#python #json #go #cloudflare #cloudflare-workers

#python #json #Вперед #cloudflare #cloudflare-рабочие

Вопрос:

Пишу bulk PUT для CF Workers KV на Python и не могу понять, что здесь не так. Насколько я могу судить, мой 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))

Любые идеи приветствуются. Я уверен, что это важный момент…

Ответ №1:

Это бесполезное сообщение об ошибке, извините за это. Значения Workers KV представляют собой простые байты, которые при необходимости могут быть десериализованы в Worker (например, проанализированы как JSON). Я думаю, что то, что вы хотите сделать, это просто,

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

Так что ваше значение кодируется как строка. И затем в вашем рабочем вы можете,

 let jsonValue = KV_NAMESPACE.get("aals", "json");
  

Комментарии:

1. Спасибо! Это сделало свое дело. Да, не самая полезная ошибка =)