2012-09-17 3 views
0

나는 주어진 사용자의 트윗을 모니터링하고 보관하는 매우 간단한 스크립트로 작업하고 있습니다. 현재 구성에서 5 분마다 가장 최근의 트윗 (API 한도) 20 개를 요청한 다음 어떤 것이 새로운 것인지 확인하고 새로운 것을 파일에 추가합니다. 간단해야합니다.diffing JSON (twitter API)

json_u = json.loads(u) 
after first run: 
    q = [x for x in json_u if x not in old_u] 
    write q 
old_u = json_u 
wait five minutes 

문제는 Q = 라인이 일을하지 않는 것 같습니다 것을 : U는 트위터 API에서 JSON 출력으로 정의되는으로

내가 지금하고있어 모든

다음 루프 q 변수가 매 20 개의 새로운 트윗을 매번 포함하는 결과로서, 직업 권리. 파이썬 (json_u 20 dicts의 목록이어야한다)이 건설에 어려움을 겪고 것을 생각하고, 내가 대신이 방법을 구현하고 싶었 :

q = [x for str(x) in json_u if str(x) not in old_u] 

그러나 그것은 구문 에러가 발생합니다 :에 할당 할 수 없습니다 함수 호출 오류.

어떤 도움이 필요합니까? 감사!

답변

0

구문은 [...에 대한 변수 식]이므로 구문 오류가 발생합니다.

원래 목록의 이해가 잘되었습니다. 문제는 jason_u의 dicts가 old_u의 dict와 동일하지 않은 것 같습니다.

dicts를 인쇄하고 타임 스탬프와 같은 차이점을 찾았습니까?

+0

저에게 논리적 인 의미는 아닙니다. q는 문자열 목록을 포함하고 싶지 않습니다. (dicts 목록은 괜찮습니다),/compare/strings - 또는 여하튼 dicts를 적절히 비교하는 명백한 무능력을 피한다. – serilain

+0

그래, 네 문제 설명을 충분히 철저히 읽지는 않았다. 나쁘다. 지금 그것을 수정했습니다. 아마도 더 도움이 될 것입니다. – rodion

+0

API 제한은 100 개가 아니며 20입니다. –