2017-12-28 40 views
2

RでJSONパッケージを使用するときのエンコーディングを変更するにはどうすればよいですか?英語でrでJSONをエンコーディングする

for (pageNum in 0:20) { 
    data <- fromJSON(paste0("https://api.hh.ru/vacancies?text=\"бухгалтер\"&page=", pageNum)) 
    vacanciesdf <- rbind(vacanciesdf, data.frame(
    data$items$area$name, 
    data$items$salary$currency, 
    data$items$salary$from, 
    data$items$employer$name, 
    data$items$name, 
    data$items$snippet$requirement)) 
    print(paste0("Upload pages:", pageNum + 1)) 
    Sys.sleep(3) 
} 

、キーワードの作品の紹介をAPIからのダウンロードが、何もロシアにロードされていません。私は問題がエンコーディングにあると仮定します。しかし、UTF-8のインストール方法は?

答えて

1

これらの種類の問題は再現するのが難しいですが、 'fromJSON'が問題を解決する前にUTF-8エンコーディングを適用するために 'コンテンツGET'を使用しています。

質問に記載されているURLがエラーを返すため、このソリューションはプリンシパルを示し、使用しているAPIから引数リストを取得します。

library(httr) 
library(jsonlite) 

URL <- "https://api.hh.ru/vacancies?describe_arguments=true" 
text <- content(GET(URL)), as = "text", encoding = "UTF-8") 
data <- fromJSON(text) 

これは、UTF-8でエンコードされたJSONを返します。

+0

ありがとうございますが、エラー:

 > data <- content(GET(paste0("https://api.hh.ru/vacancies?text=\"бухгалтер\"&page=", pageNum),as = "text", encoding = "UTF-8")) > data <- fromJSON(text) Error: Argument 'txt' must be a JSON string, URL or file. 

+1

はリンク自体に問題があるようです。ブラウザに入力すると、次のエラーメッセージが表示されます。 – GGAnderson

+0

もう少し調査しましたか?コアの問題は、paste0に続いて、アウトバウンドURLに正しいハイブリッドエンコーディングを維持しているようです。あなたのシステムのデフォルトのエンコーディングは何ですか?これで見つけることができます:Sys.getlocale(category = "LC_CTYPE") – GGAnderson

関連する問題