我想使用SAS libname JSON引擎而不是PROC GROOVY來導入我從Twitter API獲得的JSON文件。我在OpenSuse LEAP 42.3上運行SAS 9.4M4。SAS libname JSON引擎 - Twitter API
我跟着Falko Schulz's description在如何訪問Twitter API和everthing工作得很好。直到我想將JSON文件導入到SAS中。所以代碼的最後工作線路:
proc http method="get"
out=res headerin=hdrin
url="https://api.twitter.com/1.1/search/tweets.json?q=&TWEET_QUERY.%nrstr(&)count=1"
ct="application/x-www-form-urlencoded;charset=UTF-8";
run;
其產生與文件名「資源」引用的文件中的JSON文件。
Falko Schulz使用PROC GROOVY。然而,在SAS 9.4M4中,有這個神祕的JSON libname引擎,使生活更輕鬆。它適用於簡單的JSON文件。但不適用於Twitter數據。因此,有來自Twitter的JSON數據下載,使用
libname test JSON filref=res;
給了我以下錯誤:
Invalid JSON in input near line 1 column 751: Some code points did not transcode.
我懷疑的東西是錯誤的文件,所以我使用的文件名語句中的編碼形式:
filename res TEMP encoding="utf-8";
沒有運氣...
我也試圖增加ŧ他記錄長度
filename res TEMP encoding="utf-8" lrecl=1000000;
,並與記錄格式...無濟於事玩耍了......
有人能幫忙嗎?我錯過了什麼?如何在LIBNAME語句中使用JSON引擎而不會遇到此錯誤?
您的SAS會話正在運行什麼編碼? IE,這是什麼回報:'proc option option = encoding; run;' – Joe
ENCODING = LATIN9,我應該將其改爲UTF-8 –
是的,這很有可能是您的問題的一部分。大多數SAS安裝9.4+都會自動包含一個UTF-8啓動選項(它可能是開始菜單/等中的一個單獨的快捷方式) – Joe