Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby从文件构建哈希_Ruby_Xml_Webservice Client_Savon - Fatal编程技术网

Ruby从文件构建哈希

Ruby从文件构建哈希,ruby,xml,webservice-client,savon,Ruby,Xml,Webservice Client,Savon,我正在使用一个web服务,使用Savon处理+-1000个付费请求,并将请求解析为csv文件。 如果解析失败,我将xml.hash响应保存在一个文件中。 如何初始化保存到文件中的哈希?或者我应该保存在XML中,然后让savon再次将其转换为散列 额外信息: client = Savon.client do wsdl "url" end response = client.call(:read_request) do message "dat:number" => numbe

我正在使用一个web服务,使用Savon处理+-1000个付费请求,并将请求解析为csv文件。 如果解析失败,我将xml.hash响应保存在一个文件中。 如何初始化保存到文件中的哈希?或者我应该保存在XML中,然后让savon再次将其转换为散列

额外信息:

client = Savon.client do
    wsdl "url"
end

response = client.call(:read_request) do 
  message "dat:number" => number 
end
我使用response.hash来构建/解析我的csv数据。例:

name = response.hash[:description][:name]

如果构建失败,我会考虑将response.hash保存到一个文件中。但问题是我不知道如何重用保存的响应XML/Hash,以便使用保存的响应运行更新版本的构建/解析

如果您的代码希望使用/操作如上所示的ruby哈希,那么如果您希望保存Savon响应,那么请使用json gem并执行以下操作:

require 'json'

File.open("responseX.json","w") do |f| 
  f << response.hash.to_json 
end

如果您的代码希望使用/操作如上所示的ruby哈希,那么如果您希望保存Savon响应,那么请使用json gem并执行以下操作:

require 'json'

File.open("responseX.json","w") do |f| 
  f << response.hash.to_json 
end

您希望将散列序列化为文件,然后再次将其反序列化

您可以通过或和二进制via在文本中执行此操作

元帅 封送数据有一个主版本号和次版本号,因此如果封送数据版本发生变化,不能保证总是加载到另一个Ruby中

亚马尔 JSON
有趣的是,YAML很慢,Marshall和JSON很快。

您希望将哈希序列化为一个文件,然后再次反序列化它

您可以通过或和二进制via在文本中执行此操作

元帅 封送数据有一个主版本号和次版本号,因此如果封送数据版本发生变化,不能保证总是加载到另一个Ruby中

亚马尔 JSON
有趣的是,YAML很慢,Marshall和JSON很快。

您必须提供一些示例数据和/或示例代码。这里没有人有心灵感应。我补充了额外的解释。归结起来就是:我想把一个变量的值保存到一个文件中,以便以后可以恢复该变量以供重用。尽可能具体。可能的副本您必须提供一些示例数据和/或一些示例代码。这里没有人有心灵感应。我补充了额外的解释。归结起来就是:我想把一个变量的值保存到一个文件中,以便以后可以恢复该变量以供重用。尽可能具体。可能重复的
def serialize_marshal filepath, object
  File.open( filepath, "wb" ) {|f| Marshal.dump object, f }
end

def deserialize_marshal filepath
  File.open( filepath, "rb") {|f| Marshal.load(f)}
end
require 'yaml'

def serialize_yaml filepath, object
  File.open( filepath, "w" ) {|f| YAML.dump object, f }
end

def deserialize_yaml filepath
  File.open( filepath, "r") {|f| YAML.load(f) }
end
require 'json'

def serialize_json filepath, object
  File.open( filepath, "w" ) {|f| JSON.dump object, f }
end

def deserialize_json filepath
  File.open( filepath, "r") {|f| JSON.load(f)}
end