SAS에서 JSON 파일의 데이터를 구문 분석하려고하는데 코드에 문제가 있습니다. 너무 길기 때문에 모든 JSON 콘텐츠를 게시 할 수는 없지만 관련성이있는 JSON 콘텐츠의 일부를 게시 할 수 있습니다. 아래는 나의 SAS 코드입니다. 내가 그것을 실행할 때, 나는 "잃어버린 카드"를 말하는 로그에 뭔가를 얻는다. 그리고 나는 그것이 무엇을 의미하는지 모른다.SAS에서 JSON 출력을 읽는 중 문제가 발생했습니다.
코드의 일부가 주석 처리됩니다. 왜냐하면 변수 목록을 추가로 작성할 때까지 코드가 실제로 작동하기 때문입니다.이 오류 ("LOST CARD")는 "lrecl "선과 특정 변수의 길이?
제공 할 수있는 도움에 대해 미리 감사드립니다.
SAS 코드 :
이filename otp1 '...\output\otp1.json';
data work.otp1sas;
infile otp1 lrecl = 32000 /*truncover*/ scanover;
input
@'"startTime":' startTime $20.
@'"endTime":' endTime $20.
@'"walkTime":' walkTime $20.
@'"transitTime":' transitTime $20.
/*@'"waitingTime":' waitingTime $20.
@'"walkDistance":' walkDistance $20.
@'"walkLimitExceeded":' walkLimitExceeded $20.
@'"transfers":' transfers $20.*/;
startTime = scan(startTime,1,',"');
endTime = scan(endTime,1,',"');
walkTime = scan(walkTime,1,',"');
transitTime = scan(transitTime,1,',"');
/*waitingTime = scan(waitingTime,1,',"');
walkDistance = scan(walkDistance,1,',"');
walkLimitExceeded = scan(walkLimitExceeded,1,',"');
transfers = scan(transfers,1,',"');*/
run;
JSON 콘텐츠 (즉, 위의 코드 관련이) : 당신은 SAS 9.3+을 충분히 luccy하지 않는 경우
{"requestParameters":{"date":"03-14-2014","mode":"TRANSIT,WALK","arriveBy":"false","showIntermediateStops":"false","fromPlace":"33.8134605,-84.34973148","itinIndex":"0","toPlace":"33.80882004,-84.39769799","time":"10:00am","maxWalkDistance":"3218.688"},"plan":{"date":1394805600000,"from":{"name":"Arlington Avenue Northeast","stopId":null,"stopCode":null,"platformCode":null,"lon":-84.34880165944314,"lat":33.81255118156955,"arrival":null,"departure":null,"orig":null,"zoneId":null,"stopIndex":null},"to":{"name":"Collier Road Northwest","stopId":null,"stopCode":null,"platformCode":null,"lon":-84.39787235641106,"lat":33.808417712941896,"arrival":null,"departure":null,"orig":null,"zoneId":null,"stopIndex":null},"itineraries":[{"duration":2630.0,"startTime":1394806613000,"endTime":1394809243000,"walkTime":994,"transitTime":1273,"waitingTime":363,"walkDistance":1280.0733818655874,"walkLimitExceeded":false,"elevationLost":0.0,"elevationGained":0.0,"transfers":2,"
SAS는 현재 행에서 더 많은 데이터를 예상하지만 행이 끝납니다. TRUNCOVER를 사용하지 않는 이유는 무엇입니까? 아마도 도움이 될 것입니다. http://www2.sas.com/proceedings/sugi30/058-30.pdf – vasja
현재 사용중인 SAS 버전은 무엇입니까? 9.3 이상이면 Proc Groovy를 사용하여 JSON 파일을 구문 분석 할 수 있습니다. – Reeza
리스, 고마워. JSON 파일 컨텐트를 SAS에서 사용할 수있는 것으로 변환하는 것에 익숙하지 않은 분께는 사용하기가 비교적 쉽습니다. 나는 그 옵션을 고려할 수 있습니다 ... – emorystudent