Clojure 我如何遍历我的结果?
这就是我目前拥有的:Clojure 我如何遍历我的结果?,clojure,Clojure,这就是我目前拥有的: {:total-pages 1, :total-results 1, :items [{:item-atributes {:title Tolkien Calendar 2017, :product-group Book, :manufacturer Harper Voyager, :author J. R. R. Tolkien}, :SalesRank 12016, :item-links [{:description Technical Details, :url
{:total-pages 1, :total-results 1, :items [{:item-atributes {:title Tolkien Calendar 2017, :product-group Book, :manufacturer Harper Voyager, :author J. R.
R. Tolkien}, :SalesRank 12016, :item-links [{:description Technical Details, :url https://www.amazon.com/Tolkien-Calendar-2017-J-R/dp/tech-data/0062566938
%3FSubscriptionId%3DAKIAI6FVBZ4SCQ3VMGCQ%26tag%3D215401-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D386001%26creativeASIN%3D0062566938} {:description Ad
d To Baby Registry, :url https://www.amazon.com/gp/registry/baby/add-item.html%3Fasin.0%3D0062566938%26SubscriptionId%3DAKIAI6FVBZ4SCQ3VMGCQ%26tag%3D215401
-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D386001%26creativeASIN%3D0062566938} {:description Add To Wedding Registry, :url https://www.amazon.com/gp/r
egistry/wedding/add-item.html%3Fasin.0%3D0062566938%26SubscriptionId%3DAKIAI6FVBZ4SCQ3VMGCQ%26tag%3D215401-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D3
86001%26creativeASIN%3D0062566938} {:description Add To Wishlist, :url https://www.amazon.com/gp/registry/wishlist/add-item.html%3Fasin.0%3D0062566938%26Su
bscriptionId%3DAKIAI6FVBZ4SCQ3VMGCQ%26tag%3D215401-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D386001%26creativeASIN%3D0062566938} {:description Tell A
Friend, :url https://www.amazon.com/gp/pdp/taf/0062566938%3FSubscriptionId%3DAKIAI6FVBZ4SCQ3VMGCQ%26tag%3D215401-20%26linkCode%3Dxm2%26camp%3D2025%26creati
ve%3D386001%26creativeASIN%3D0062566938} {:description All Customer Reviews, :url https://www.amazon.com/review/product/0062566938%3FSubscriptionId%3DAKIAI
6FVBZ4SCQ3VMGCQ%26tag%3D215401-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D386001%26creativeASIN%3D0062566938} {:description All Offers, :url https://ww
w.amazon.com/gp/offer-listing/0062566938%3FSubscriptionId%3DAKIAI6FVBZ4SCQ3VMGCQ%26tag%3D215401-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D386001%26cre
ativeASIN%3D0062566938}], :detail-page-url https://www.amazon.com/Tolkien-Calendar-2017-J-R/dp/0062566938%3FSubscriptionId%3DAKIAI6FVBZ4SCQ3VMGCQ%26tag%3D2
15401-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D0062566938, :asin 0062566938}]}
我从一个结果中得到了这个结果,并希望遍历它 不,那不是XML。您可以使用来遍历嵌套结构。正如@jmargolistvt所说,您有一个Clojure数据结构(嵌套映射和数组),而不是xml 此外,下次请使用
prn
而不是println
或类似工具进行打印,因为重要的是在字符串(如“Harper Voyager”)周围保留双引号字符
我将数据简化了一点,并得出以下结论:
(ns clj.core
(:require
[tupelo.core :as t]
[clojure.pprint :as pp]
)
(:gen-class))
(t/refer-tupelo)
(def data
{:total-pages 1, :total-results 1, :items
[ {:item-atributes
{:title "Tolkien Calendar 2017", :product-group "Book",
:manufacturer "Harper Voyager"
:author "J. R. R. Tolkien" }, :SalesRank 12016, :item-links [{:description "Technical Details" } ]
} ] } )
(pp/pprint data)
(defn -main [& args]
)
这将产生:
~/clj > lein run
{:total-pages 1,
:total-results 1,
:items
[{:item-atributes
{:title "Tolkien Calendar 2017",
:product-group "Book",
:manufacturer "Harper Voyager",
:author "J. R. R. Tolkien"},
:SalesRank 12016,
:item-links [{:description "Technical Details"}]}]}
此时,您可以添加
(newline)
(doseq [item (data :items) ]
(newline)
(pp/pprint item)
(newline)
(spyx (item :SalesRank))
(spyx (get-in item [:item-atributes :title])))
要获得:
{:item-atributes
{:title "Tolkien Calendar 2017",
:product-group "Book",
:manufacturer "Harper Voyager",
:author "J. R. R. Tolkien"},
:SalesRank 12016,
:item-links [{:description "Technical Details"}]}
(item :SalesRank) => 12016
(get-in item [:item-atributes :title]) => "Tolkien Calendar 2017"
您的项目.clj
必须包含此项才能使(spyx…
部分正常工作:
:dependencies [
[tupelo "0.9.9"] ...
我试着做了(打印(进入(亚马逊搜索I)[:items:item-atributes:title])),但结果返回了零。amazon_搜索是获取嵌套结构的我的函数:items是一个数组。你能进那么多吗?我知道了。谢谢我使用@jmargolistvt的方法提取标题和salesrank。我大约有10本书,每本书的书名都是salesrank。如何根据salesrank对书籍进行排序,然后以表格格式整齐地打印出来?我现在有这种格式。。(println(登录(亚马逊搜索isbn)[:items 0:item atributes:title]))(println(登录(亚马逊搜索isbn)[:items 0:SalesRank]))