gpt4 book ai didi

json - Julia 中的 API POST 请求

转载 作者:行者123 更新时间:2023-12-04 08:33:00 27 4
gpt4 key购买 nike

我正在尝试将一些 Python 代码转换为 Julia。这是Python代码:

        url = "http://api.scb.se/OV0104/v1/doris/sv/ssd/START/BE/BE0101/BE0101G/BefUtvKon1749"

json = {
"query": [
{
"code": "Kon",
"selection": {
"filter": "item",
"values": [
"1",
"2"
]
}
},
{
"code": "ContentsCode",
"selection": {
"filter": "item",
"values": [
"000000LV"
]
}
}
],
"response": {
"format": "px"
}
}

r = requests.post(url=url, json=json)
下面是 Julia 代码,它不起作用,并带有此错误消息:
语法:{} 向量语法在 path:8 周围停止
在population_data.jl:8 的顶级范围
using DataFrames, DataFramesMeta, HTTP, JSON3

url = "http://api.scb.se/OV0104/v1/doris/sv/ssd/START/BE/BE0101/BE0101G/BefUtvKon1749"

json = {
"query": [
{
"code": "Kon",
"selection": {
"filter": "item",
"values": [
"1",
"2",
"1+2"
]
}
},
{
"code": "ContentsCode",
"selection": {
"filter": "item",
"values": [
"000000LV"
]
}
}
],
"response": {
"format": "px"
}
}

r = HTTP.post(url, json)
我试图解决这个问题如下:
  • 使用 """将 json 变量转换为字符串。
  • 使用 JSON3.read()
  • 将 JSON 字符串转换为 Julia 数据类型
  • 将转换后的 JSON 字符串传递给 POST 请求。这给出了以下错误:
  • IOError(Base.IOError("read: connection reset by peer (ECONNRESET)", -54) during request(http://api.scb.se/OV0104/v1/doris/sv/ssd/START/BE/BE0101/BE0101G/BefUtvKon1749)
    它都不起作用,我什至不确定它是否与 JSON 格式有关。可能是我向 POST 请求传递了错误的参数。我该怎么办?

    最佳答案

    解决此问题的一种方法是将参数构建为原生 julia 数据结构,并使用 JSON将它们转换并用作 PUT 请求的正文:
    julia 中的字典使用类似 Dict(key => value) 的语法构建。 .数组使用标准语法构建:[a, b, c] .与您的参数等效的 julia native 数据结构如下所示:

    params = Dict(
    "query" => [
    Dict("code" => "Kon",
    "selection" => Dict(
    "filter" => "item",
    "values" => [
    "1",
    "2",
    "1+2"
    ]),
    ),
    Dict("code"=> "ContentsCode",
    "selection" => Dict(
    "filter" => "item",
    "values" => [
    "000000LV"
    ]),
    ),
    ],
    "response" => Dict(
    "format" => "px"
    ))
    然后,您可以使用 JSON.json()将其构建为字符串的 JSON 表示并将其传递给 HTTP 请求:
    using HTTP
    using JSON

    url = "http://api.scb.se/OV0104/v1/doris/sv/ssd/START/BE/BE0101/BE0101G/BefUtvKon1749"

    # send the request
    r = HTTP.request("POST", url,
    ["Content-Type" => "application/json"],
    JSON.json(params))

    # retrieve the response body as a string
    b = String(r.body)

    关于json - Julia 中的 API POST 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64936578/

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