使用R语言的httr包中的`query`参数发送向量

3
要发送值向量,比如数组list_a = c(1,2,3),FastAPI将接受以下形式的URL: https://wherever.com/endpoint?list_a=1&list_a=2&list_a=3 然而,使用httr库的查询参数到GET函数中时,您必须传递一个键值对列表。这意味着您不能有相同的字段,因为R显然不会接受具有重复键的列表。
那么我该怎么办?我可以自己构建URL,但问题在于我的一些参数中有双引号("),如果我直接将它们放入url中,它们似乎无法被正确解析。然而,query参数似乎可以正确处理这些参数。
是否有任何方法使httr的GET的query参数创建多个相同的字段名?
或者,如何对已经存在双引号的预先创建的URL进行编码,以便它不会导致FastAPI提供HTTP错误? "query/Crude/?actual_table_name=live.crude&report_id=xxxxxxx&fields=IMO&where={\"Barrels\":{\"gt\":1},\"conjunction\":\"\"}&where={\"Load Date\":{\"gt\":\"'2000-01-01'\"},\"conjunction\":\"\"}&offset=1e+05&limit=10000"
1个回答

3
我认为最简单的方法是自己构建查询字符串,然后对结果使用URLencode
url <- "query/Crude/?actual_table_name=live.crude&report_id=xxxxxxx&fields=IMO&where={\"Barrels\":{\"gt\":1},\"conjunction\":\"\"}&where={\"Load Date\":{\"gt\":\"'2000-01-01'\"},\"conjunction\":\"\"}&offset=1e+05&limit=10000"

URLencode(url)
#> [1] "query/Crude/?actual_table_name=live.crude&report_id=xxxxxxx&fields=IMO&where=%7B%22Barrels%22:%7B%22gt%22:1%7D,%22conjunction%22:%22%22%7D&where=%7B%22Load%20Date%22:%7B%22gt%22:%22'2000-01-01'%22%7D,%22conjunction%22:%22%22%7D&offset=1e+05&limit=10000"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接