एसएएस लिबडे JSON इंजन-ट्विटर एपीआई



twitter sas (1)

मैं ट्विटर एपीआई से प्राप्त होने वाली जेएसओ फाइल को आयात करने के लिए प्रोसी ग्रोववाई के बजाय एसएएस लिबैडेसन जेसन इंजन का उपयोग करना चाहता हूं। मैं ओपनसूस LEAP 42.3 पर एसएएस 9.4 एम 4 चल रहा हूं।

मैंने ट्विटर एपीआई तक पहुंचने के लिए फॉको शूल के विवरण का पालन ​​किया और कभी भी ठीक काम किया। उस बिंदु तक, जिस पर मैं एसएएस में जेएसओएन फ़ाइल आयात करना चाहता था। तो कोड की अंतिम कार्यशील पंक्ति है:

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;

जो फ़ाइल नाम "रिज़" के साथ संदर्भित फ़ाइल में जेसन-फाइल उत्पन्न करता है

फाल्को स्कूल्ज़ प्रोक ग्रोवी का उपयोग करता है एसएएस 9.4 एम 4 में, हालांकि, यह रहस्यमय JSON Libname इंजन है जो जीवन को आसान बनाता है। और यह सरल JSON फ़ाइलों के लिए काम करता है। लेकिन ट्विटर डेटा के लिए नहीं इसलिए ट्विटर से जेसनॉन डेटा डाउनलोड करते हुए, का उपयोग करते हुए

libname test JSON filref=res;

मुझे निम्न त्रुटि देता है:

लाइन 1 कॉलम 751 के पास इनपुट में अमान्य JSON: कुछ कोड बिंदु ट्रांसकोड नहीं थे

मुझे संदेह है कि फाइलों के एन्कोडिंग में कुछ गलत है, इसलिए मैंने फ़ॉर्म के फ़ाइल नाम का विवरण प्रयोग किया था:

filename res TEMP encoding="utf-8";

बिना भाग्य ...

मैंने रिकॉर्ड लंबाई में भी वृद्धि करने की कोशिश की

filename res TEMP encoding="utf-8" lrecl=1000000;

और रिकार्ड प्रारूप के साथ खेला ... कोई फायदा नहीं हुआ ...

क्या कोई मदद कर सकता है? मैं क्या खो रहा हूँ? मैं इस त्रुटि में चलने के बिना एक LIBNAME कथन में JSON इंजन का उपयोग कैसे कर सकता हूं?


यदि आप एसएएस डेटासेट में यूटीएफ -8 फाइलों को इनपुट कर रहे हैं, तो यूटीएफ -8 मोड में अपना एसएएस सत्र चलाएं। हालांकि एसएएस को एक और मोड में चलाने के लिए संभव है और अभी भी कुछ हद तक यूटीएफ -8 एन्कोडेड फाइलों को पढ़ा जा सकता है, आपको आमतौर पर बहुत सी कठिनाइयां मिलेंगी।

आप यह बता सकते हैं कि इस कोड के साथ आपका सत्र एन्कोडिंग क्या है:

proc options option=encoding;
run;

अगर यह यह देता है:

 ENCODING=WLATIN1  Specifies the default character-set encoding for the SAS session.

तब आप यूटीएफ -8 एन्कोडिंग में नहीं हैं।

एसएएस 9.4 और बाद में डेस्कटॉप पर आमतौर पर डिफ़ॉल्ट WLATIN1 (जब भी अंग्रेजी में स्थापित किया जाता है, वैसे भी) के अलावा स्वतः चयनित यूटीएफ -8 विकल्प के साथ इंस्टॉल किया जाता है। आप इसे SAS 9.4 (Unicode Support) तहत शुरू मेनू में, या अपने SAS फाउंडेशन फ़ोल्डर के 9.4\nls\u8\ subfolder में sasv9.cfg फ़ाइल का उपयोग कर प्राप्त कर सकते हैं। अन्य पूर्व संस्करणों में वह सबफोल्डर / भाषा भी स्थापित हो सकती है, लेकिन यह हमेशा स्थापित करने के लिए डिफ़ॉल्ट नहीं था।





sas