gpt4 book ai didi

clojure - map 文字必须包含偶数个形式

转载 作者:行者123 更新时间:2023-12-02 16:52:30 25 4
gpt4 key购买 nike

我正在尝试向 Web 服务发出请求,该服务需要 json 数据和 secret (:key)

(ns fdsfdsfds.core
(:require [clj-http.client :as client])
(:require [clojure.data.json :as json]))


(defn -main [& args]
(client/post "https://fsdfdsfd.com/api/fdsfds"
{:body {(json/write-str {:key "fdsfdsfdsfd"})}}))

我遇到错误:

Exception in thread "main" java.lang.RuntimeException: Map literal must contain an even number of forms 

不过,它们的数量是偶数。

最佳答案

问题出在这里:

 {:body {    (json/write-str {:key "fdsfdsfdsfd"})     }}
^-- single item missing value? --^
^----- this is a map too

没有任何与函数调用配对的内容。

:body 有一个映射作为值,但其中只有一个函数,没有其值的可能键,或者如果这是键,则它没有值。

您可能想要删除外部 map 括号并保留:

{:body (json/write-str {:key "fdsfdsfdsfd"})}

评论后编辑:

你问为什么 example on the site正在使用 map 。仔细看看所使用的值,它是一个字符串

(client/post "url://site.com/api"
{:basic-auth ["user" "pass"]
:body "{\"json\": \"input\"}"
;; ...

该映射由键/值对行组成。第一个是

key = :basic-auth, value = ["user" "pass"]

这里的值是一个数组。

第二行是:

key = :body, value = "any old string"

在这种情况下,字符串是转义映射,与调用 json/write-str 返回的结果相同

关于clojure - map 文字必须包含偶数个形式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34704719/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com