Я работаю с пакетом httr в R, пытаясь запросить API postcode.io (http://postcodes.io/docs).
Я могу успешно запросить один почтовый индекс в соответствии с инструкциями, используя: sample4 <- GET("api.postcodes.io/postcodes/EN14RF")
Когда я пытаюсь запросить несколько почтовых индексов, я немного теряюсь. Инструкции postcode.io предлагают
POST https://api.postcodes.io/postcodes?q=[postcode]
где указан объект JSON, содержащий массив почтовых индексов. У меня есть вектор R, содержащий почтовые индексы, которые я пытался преобразовать в объект JSON как таковой с помощью:
a <- toJSON(a)
где мой вектор R 'a':
structure(c(4L, 5L, 3L, 6L, 1L, 2L), .Label = c("Bn14 9aw", "CR0 4BE", "E5 8HB", "EN1 4RF", "G42 8QN", "SA1 3UL"), class = "factor")
Теперь, когда я пытаюсь запросить API со следующей строкой кода:
sample4 <- POST("https://api.postcodes.io/postcodes?q=[postcode]", body = list(postcode = add1JSON))
Я получаю сообщение об ошибке: "Invalid JSON submitted. You need to submit a JSON object with an array of postcodes or geolocation objects"
У меня такое ощущение, что это потому, что я предоставляю не массив, а безымянный список, например. мой объект JSON должен выглядеть так:
{"postcodes":"[ \"EN14RF\", \"G428QN\", \"E58HB\", \"SA13UL\", \"Bn149aw\", \"CR04BE\" ]"}
Не это: "[ \"EN14RF\", \"G428QN\", \"E58HB\", \"SA13UL\", \"Bn149aw\", \"CR04BE\" ]"
Кто-нибудь может мне с этим помочь? У меня есть ощущение, что это как-то связано с моим вызовом toJSON
, но я не смог найти аналогичный пример на форуме или на странице разработчиков API :(
Большое спасибо
Марти