Veröffentlicht am :
ETL EXTERNE

Extraktion und Analyse koreanischer Steuerdaten über API

Dieser Code ist auch verfügbar auf: English Español Français
Wartet auf Validierung
Dieses Skript konfiguriert eine lokale Bibliothek und definiert ein Makro '%json' zur Datenextraktion. Es iteriert über einen Bereich von Jahren und Seiten, führt POST-Anfragen über PROC HTTP an 'openapi.openfiscaldata.go.kr' aus und speichert die Rohantwort. Das JSON-Parsing erfolgt auf unkonventionelle Weise über einen DATA-Schritt unter Verwendung spezifischer Trennzeichen und einer Transposition. Abschließend wendet ein Nachbearbeitungsschritt Labels in Koreanisch an und filtert die Variablen.
Datenanalyse

Type : EXTERNE


Dynamisch abgerufene Daten über die API 'openapi.openfiscaldata.go.kr' (Open Fiscal Data) im JSON-Format.

1 Codeblock
DATA STEP
Erklärung :
Initialisierung globaler Variablen (Pfad, API-Schlüssel) und Definition der Ausgabebibliothek.
Kopiert!
1%let dir=C:\json\;
2%let lib=json;
3%let String01=WBQMR1000052520180323030651FWHGU;/*apiKey*/
4 
5LIBNAME &lib "&dir";
2 Codeblock
PROC HTTP Data
Erklärung :
Dynamische Konstruktion der URL mit Jahres- und Paginierungsparametern, gefolgt von der Ausführung einer POST-Anfrage zum Herunterladen der Rohdaten in eine Textdatei.
Kopiert!
1%macro json(data_final, String05, date_s, date_e);
2 /* ... boucle date ... */
3 %let url=&string05?FSCL_YY=&date_want&key=&string01&type=json&pindex=&string02&psize=1000;
4 
5 filename out "&dir.SeriesDataOut.txt" recfm=v lrecl=999999999;
6 PROC HTTP out=out url="&url" method="post" ct="application/json";
7 RUN;
3 Codeblock
DATA STEP Data
Erklärung :
Import und manuelles Parsen der JSON-Datei (als delimitierter Text behandelt). Die 'merge'-Logik mit Versatz (firstobs=2) dient wahrscheinlich dazu, JSON-Schlüssel und -Werte zuzuordnen.
Kopiert!
1 DATA raw;
2 INFILE "&dir.SeriesDataOut.txt" dsd lrecl=999999999 dlm='{}[]:,';
3 INPUT raw : $2000. /* ... */;
4 RUN;
5 
6 DATA temp;
7 MERGE raw raw(firstobs=2 rename=(raw=_raw));
8 IF mod(_n_,2) eq 0;
9 RUN;
10 /* ... logique de groupe ... */
4 Codeblock
PROC TRANSPOSE Data
Erklärung :
Pivotierung der geparsten Daten, um Schlüssel-Wert-Paare (Zeilen) in strukturierte Spalten umzuwandeln, und anschließendes Hinzufügen dieser Daten zur kumulativen Endtabelle.
Kopiert!
1 PROC TRANSPOSE DATA=temp out=data_one(drop=_:);
2 BY group;
3 id raw;
4 var _raw;
5 RUN;
6 
7 DATA &lib..&data_final;
8 SET &lib..&data_final data_one;
9 RUN;
5 Codeblock
DATA STEP Data
Erklärung :
Abschließende Bereinigung der Tabelle: Löschen leerer Zeilen, Anwenden von Spaltenbeschriftungen (auf Koreanisch) für die Geschäfts-Dokumentation und Beibehalten nur der in &var_want definierten interessierenden Variablen.
Kopiert!
1/*변수명, 변수 형태 변경_start*/
2DATA &lib .longdata_002;
3SET &lib .longdata_002;
4IF FSCL_YY="" THEN delete;
5label FSCL_YY=회계연도;
6/* ... autres labels ... */
7label NRC_AMT =미수납액(원);
8keep &var_want;
9RUN;
Dieses Material wird von We Are Cas "wie besehen" zur Verfügung gestellt. Es gibt keine ausdrücklichen oder stillschweigenden Garantien hinsichtlich der Marktgängigkeit oder Eignung für einen bestimmten Zweck in Bezug auf die hierin enthaltenen Materialien oder Codes. We Are Cas ist nicht verantwortlich für Fehler in diesem Material, wie es jetzt existiert oder existieren wird, noch bietet We Are Cas technischen Support dafür an.