当前位置: 首页 > 知识库问答 >
问题:

TypeError:无法将数组转换为字符串

慕容宏邈
2023-03-14

我在尝试使用nokogiri运行rake任务时遇到这个错误。

namespace :tops do
  desc "Get Tops Description"
  task get_description: :environment do
  require 'nokogiri'
  require 'open-uri'

 doc = Nokogiri::HTML(open("http://ceratoboutique.com/collections/tops"))

  price = Array.new 
  items = Array.new
  brands = Array.new
  sale_price = Array.new
  image = Array.new
  item_url = Array.new

  price = doc.xpath("//del").collect {|node| node.text.strip}
  items = doc.xpath("//div/a/h4").collect {|node| node.text.strip}
  brands = doc.xpath("//span[contains(@class,'vendor')]").collect {|node| node.text.strip}
  sale_price = doc.xpath("//span[contains(@class, 'price')]/text()").collect {|node| node.text.strip}
  image = doc.xpath("/div/a/img/@src").collect {|node| node.text.strip}
  item_url = doc.css('div.details a').map { |link| link['href'] }.collect 

  price.each do |prices|
      Tops.create(description: price)
    end
  end
end

编辑:顶部表架构

    ActiveRecord::Schema.define(version: 20140824150641) do

      create_table "tops", force: true do |t|
        t.string   "brand"
        t.string   "description"
        t.string   "image"
        t.decimal  "price"
        t.datetime "created_at"
        t.datetime "updated_at"
        t.string   "url"
      end
end

共有1个答案

苏建安
2023-03-14

您将price设置为一个数组(而不是将其称为price),这可能是导致您出现以下错误的一个原因

price.each do |prices|
  Tops.create(description: price)
end

您要为迭代的数组赋值,而不是为生成的单个元素赋值。

 类似资料:
  • 我在尝试将未签名的 char 数组转换为 jstring 时遇到问题。 上下文是我正在使用来自Java的共享c库。所以我正在实现一个JNI c文件。我在库中使用的函数会恢复 我在 JNI C 文件中实现的函数返回一个 jstring。 所以我需要把无符号的char数组转换成jstring。 但是,尽管数组应该只包含20个字节,但我在Java中随机得到22或23个字节......(虽然 20 个字节

  • 我有一个购物车php页面,在那里我显示客户端产品。在同一页中,我有一个表单,可以将客户的个人详细信息(如姓名、姓氏等)以及产品信息(如产品名称、数量等)直接发送到我的电子邮件地址。 现在,问题是,当我发送表单时,在我的电子邮件地址上,我收到了所有的信息,但没有产品细节,例如在订单电子邮件中的产品名称字段,我有ARRAY。 我看到将数组转换为字符串时出现问题,但我不知道如何转换,我尝试了几个示例,但

  • 问题内容: 我有一个数据框(df),看起来像: 对于整个时间序列,我尝试将今天的值除以昨天,并使用以下命令记录结果: 但是我得到以下错误: 我怎样才能解决这个问题?我试图使用以下方法将其转换为float: 但是什么也无法工作。 问题答案: 您可以改用numpy.log。Math.log需要一个数字,而不是数组。

  • 我试图通过API发送数据,但得到了类型错误:无法将字节转换为str。我理解这意味着我需要将部分代码转换为字节,但我不确定如何执行。我尝试在前面添加b或使用字节(“数据”),但可能将它们放在了错误的区域。 这是问题行: 我不确定什么和如何转换为字节。

  • 问题内容: 我从Met Office Datapoint API读取JSON时遇到NSJSONSerialization问题。 我收到以下错误 我已经检查并认为这是根据字符位置的冒犯行 根据我尝试过的多个验证器,JSON本身似乎是有效的,并且我希望它也来自大型组织(如Met Office)。 NSJSONSerialization是否不能与’ó’之类的字符配合使用? 如果不是,我该如何更改编码类型

  • 我正在使用Schembuf在带有套接字的计算机之间更改数据。要传输数据,我使用以下内容: 然而,我注意到Protobuf无法读取任何非int类型的接收数据(它将其分配给0)。果不其然,如果我不使用套接字,但试图用相同的代码片段返回消息,则会发生相同的情况: 我还指出: 那么,为什么我不能正确地将数据转换回字符串呢?如果这是一个参考问题,为什么protobuf不能读取字符数组数据或从字符数组转换的字