0

URL にアクセスしようとしていて、データをデータセットに保存し、ファイルを JSON として出力したいと考えています。

URLデータを取得してJSONファイルとして保存したいだけですが、私の質問には2つの部分があります......

  1. URL 応答データが既にhttp://headers.jsontest.comのような json 形式である場合は fileput コマンドとjson拡張子付きのコマンドを使用するだけです
  2. URL 応答データがhtml tags他の URL データと同様である場合、 jsonSAS によって解析またはフォーマットに変換できます。

http://www.google.comまたはhttp://headers.jsontest.comと仮定してフェッチしようとしました....ここに私のコードがあります.....

LIBNAME src '/home/user/readURL';
filename test_url url 'http://headers.jsontest.com' debug lrecl=8192;
    data src.http;
        infile test_url length=len;
        input record $varying8192. len;
        file '/home/user/readURL/READ_URL.txt';
        put test_url;
    run;
proc print data = src.http;
run;

これは、コードを実行した後に得たエラー メッセージを含むログ ファイルです: ERROR: The connection has timed out..

これを取り除く方法を考えてみてください.....

2  The SAS System   07:57 Wednesday, January 15, 2014

16         filename test_url url 'http://headers.jsontest.com' debug lrecl=8192;
17         data src.http;
18         infile test_url length=len;
19         input record $varying8192. len;
20         run;

ERROR: The connection has timed out..
NOTE: The SAS System stopped processing this step because of errors.
NOTE: SAS set option OBS=0 and will continue to check statements. This may cause NOTE: No observations in data set.
WARNING: The data set SRC.HTTP may be incomplete.  When this step was stopped there were 0 observations and 1 variables.
WARNING: Data set SRC.HTTP was not replaced because this step was stopped.
NOTE: DATA statement used (Total process time):
      real time           1:14.92
      cpu time            0.03 seconds

READ_URL.txt空のファイルとして取得

事前に助けてくれてありがとう...

4

1 に答える 1

1

実際、私は自分の問題を解決しましたが、最初の部分だけです....誰かがこのタイプの同様のエラーを見つけた場合(エラー:接続がタイムアウトしました..)...proxyそこを使用してみてください....私が追加したように私のコードで....

LIBNAME src '/home/user/readURL';

filename test_url url 'http://headers.jsontest.com' debug lrecl=8192 PROXY='http://hostname:portno/';
data src.http;
    infile test_url length=len;
    input record $varying8192. len;
    file '/home/user/readURL/READ_URL.json';
    put record;
run; 

proc print data = src.http;
run;

しかし、それでも私は質問の2番目の部分を解決する必要があります....

于 2014-01-15T13:32:45.060 に答える