LoginSignup
1
1

More than 5 years have passed since last update.

SASでATND APIからデータを取得する

Posted at

SAS University Editionを使って、ATND APIからイベントのデータを取得します。

※ANTD APIについてはこちらを参照
ATND API

今回はJapan.R 2014の参加者一覧を取得してみます。

XMLのレスポンス

http://api.atnd.org/events/users/?event_id=58624
このようにイベントIDを指定すると、以下のようなXMLが返ってきます。

xml
<?xml version="1.0" encoding="UTF-8"?>
<hash>
  <results_returned type="integer">1</results_returned>
  <results_start type="integer">1</results_start>
  <events type="array">
    <event>
      <event_id type="integer">58624</event_id>
      <title>Japan.R 2014</title>
      <event_url>http://atnd.org/events/58624</event_url>
      <limit type="integer">150</limit>
      <accepted type="integer">150</accepted>
      <waiting type="integer">47</waiting>
      <updated_at type="datetime">2014-11-07 12:39:33 +0900</updated_at>
      <users type="array">
        <user>
          <user_id type="integer">157031</user_id>
          <nickname>okay0502</nickname>
          <twitter_id>0kayu</twitter_id>
          <status type="integer">1</status>
        </user>
        <user>
          <user_id type="integer">132354</user_id>
          <nickname>yamakatu</nickname>
          <twitter_id>yamakatu</twitter_id>
          <status type="integer">1</status>
        </user>
        (以下略)

mapファイルの作成

参加者情報はusersタグ以下にあるので、必要な項目が取得できるように定義ファイルを作成します。

atnd_users.map
<?xml version="1.0" ?>
<SXLEMAP version="1.2">
    <TABLE name="users">
        <TABLE-PATH syntax="XPATH">
            /hash/events/event/users/user
         </TABLE-PATH>

        <COLUMN name="user_id">
            <PATH>
                /hash/events/event/users/user/user_id
            </PATH>
            <TYPE>numeric</TYPE>
            <DATATYPE>integer</DATATYPE>
            <LENGTH>8</LENGTH>
        </COLUMN>

        <COLUMN name="nickname">
            <PATH>
                /hash/events/event/users/user/nickname
            </PATH>
            <TYPE>character</TYPE>
            <DATATYPE>string</DATATYPE>
            <LENGTH>50</LENGTH>
        </COLUMN>

        <COLUMN name="twitter_id">
            <PATH>
                /hash/events/event/users/user/twitter_id
            </PATH>
            <TYPE>character</TYPE>
            <DATATYPE>string</DATATYPE>
            <LENGTH>50</LENGTH>
        </COLUMN>

        <COLUMN name="status">
            <PATH>
                /hash/events/event/users/user/status
            </PATH>
            <TYPE>numeric</TYPE>
            <DATATYPE>integer</DATATYPE>
            <LENGTH>8</LENGTH>
        </COLUMN>

  </TABLE>
</SXLEMAP>

SASプログラム

データ取得用のSASプログラムがこちらです。
上で作成したmapファイルはSAS University EditionのホームディレクトリであるmyfoldersにATNDディレクトリを作成し、その中に格納してあります。

atnd_api.sas
filename atnd_xml url "http://api.atnd.org/events/users/?event_id=58624";
filename atnd_map "/folders/myfolders/ATND/atnd_users.map";
libname atnd_xml xml xmlmap = atnd_map;

proc print data = atnd_xml.users;
run;

実行結果

スクリーンショット 2014-11-08 23.36.06.png

できました。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1