我实际上是在尝试使用来自开放数据巴黎的 Json,并过滤一些东西。
我可以用这些行创建我想要的:
def import
@result = ''
url = 'http://opendata.paris.fr/api/records/1.0/search/?rows=1000&dataset=arc_innovation&facet=code_postal&facet=commune&facet=etat_1&facet=typologie_carto&facet=type_innovation&facet=image'
response = HTTParty.get(url)
hash = response.parsed_response
hash['records'].each do |record|
lime = Lime.where(datasetid: record['datasetid'], recordid: record['recordid']).first_or_initialize
lime.title = record['fields']['nom']
lime.text = record['fields']['txt_descriptif']
lime.url = record['fields']['site_internet']
lime.xy = record['fields']['xy']
category = category_from_typeinnovation(record['fields']['type_innovation'])
lime.categories << category unless category.nil?
if record['fields'].has_key? 'image'
image_id = record['fields']['image']['id']
image_filename = record['fields']['image']['filename']
image_url = "http://opendata.paris.fr/explore/dataset/arc_innovation/files/#{image_id}/download"
lime.image = image_url
end
lime.save
@result += "imported #{lime.title}\n"
end
render text: @result
end
这是我的 Json 的样子
"records":[
{
"fields":{
"commune":"Paris 19e",
"code_postal":75019,
"id_formularie":1,
"etat_1":"existant",
"contact_tel":"01 53 35 50 00",
"xy":[
48.889979,
2.371504
],
"nom":"104",
"txt_descriptif":"Plateforme collaborative qui s’intéresse à la création artistique contemporaine dans toute sa diversité, elle accueille des artistes en résidence et accompagne l’émergence de nouvelles formes d’art avec le Cinq destiné aux pratiques amateurs, la Maison desPetits et un incubateur qui héberge et soutient le développement de start-ups.",
"type_innovation":"Lieux innovants de la culture et du sport",
},
我尝试按“类型创新”进行过滤。例如,我不想使用拥有“type_innovation”的数据创建帖子:“Lieux innovants de laculture et du sport”。
我试图像这样过滤:
def import
@result = ''
url = 'http://opendata.paris.fr/api/records/1.0/search/? rows=1000&dataset=arc_innovation&facet=code_postal&facet=commune&facet=etat_1&facet=typologie_carto&facet=type_innovation&facet=image'
response = HTTParty.get(url)
hash = response.parsed_response
hash['records'].each do |record|
lime = Lime.where(datasetid: record['datasetid'], recordid: record['recordid']).first_or_initialize
lime.title = record['fields']['nom']
lime.text = record['fields']['txt_descriptif']
lime.url = record['fields']['site_internet']
lime.xy = record['fields']['xy']
category = category_from_typeinnovation(record['fields']['type_innovation'])
lime.categories << category unless category.nil?
if record['fields'].has_key? 'image'
image_id = record['fields']['image']['id']
image_filename = record['fields']['image']['filename']
image_url = "http://opendata.paris.fr/explore/dataset/arc_innovation/files/#{image_id}/download"
lime.image = image_url
end
if record['fields']['type_innovation'] != ['fields']['type_innovation']['Lieux innovants de la culture et du sport']
lime.save
@result += "imported #{lime.title}\n"
end
end
render text: @result
end
当我尝试导入时,它会返回错误。我应该如何进行过滤?