【问题标题】:How to pass array of strings to JSON API Post with Ruby如何使用 Ruby 将字符串数组传递给 JSON API Post
【发布时间】:2013-07-26 03:14:16
【问题描述】:

我已将 csv 文件解析为 3 个不同的数组。每列都是一个数组——arr1 是“name”列,arr2 是“email”列,arr3 是“ID”列。

我正在尝试向接受 JSON 的 API 发出发布请求。我需要同时发布每一行(所以 arr1[0]、arr2[0] 和 arr3[0]),以确保它们都与一个联系人相关联。然后请求应该继续循环,直到没有记录要添加。我到目前为止的代码如下:

         uri= HTTParty.post("https://www.surveys.com/api/v2/add-contact",
    :basic_auth => auth,
    :headers => { 'ContentType' => 'application/json' },
    :body => {
      "name" => arr1[0],
      "email" => arr2[0],
      "id" => arr3[0]
    }
  )

虽然这可以创建一个联系人,但我在如何循环访问联系人方面仍处于空白状态。我可以创建一个 arr1.each 语句,但这会遗漏电子邮件字段 (arr2) 和 id 字段(arr3)。如何循环 3 个或更多数组?

感谢您的帮助。

【问题讨论】:

    标签: ruby arrays json api csv


    【解决方案1】:

    如果没有看到数据,就无法确定,但我建议不要将数据解析为三列,而是需要将数据保留为行,因为听起来每个联系人都是一行。

    这是 CSV 文件中联系人或任何记录的典型格式。使用 CSV 读取文件,您可以获得包含记录的数组。告诉 CSV 不要使用每行数据中的标题,您将获得数组数组。

    此时,通过将to_json 应用于整个记录数组,将每个联系人的信息捆绑在一起发送会很简单。

    【讨论】:

    • 有效点。我认为您的方法会更容易-实际上我最终得到了这个: arr1.zip(arr2,arr3,arr4,arr5,arr6,arr7,arr8,arr9,arr10,arr11,arr12,arr13,arr14,arr15,arr16) 做|a,b,c 等|我将重新审视它,看看我是否可以消除几行代码。感谢您的提示。
    猜你喜欢
    • 1970-01-01
    • 2021-07-04
    • 2021-04-05
    • 2013-03-28
    • 1970-01-01
    • 1970-01-01
    • 2016-10-25
    • 1970-01-01
    • 2021-11-16
    相关资源
    最近更新 更多