2013-05-26 3 views
3

저는 파이썬과 JSON의 초보자입니다. 트위터 API에 "말하기"위해 twython을 설치했습니다. 저는 Mac에서 Python 2.7을 사용합니다.JSON 또는 SimpleJSON과 Twython을 사용한 Python

API를 통해 내 언급을 듣고 싶습니다. 프로그램은 저를 언급 한 Twitter 사용자를 확인해야합니다.

나는 시도 : 사용자는 한 번 언급

t = Twython(...) 
men = t.get_mentions_timeline() 

, 인쇄 남자는이 같은 물건을 많이 보여줍니다 어딘가에 내가하고 싶은 모든 일에 볼이 물건에

[{u'contributors': None, u'truncated': False, u'text': .... u'Sun May 26 09:18:55 +0000 2013', u'in_reply_to_status_id_str': None, u'place': None}] 

을 응답에서 추출하십시오.

어떻게 screen_name을 추출 할 수 있습니까?

json.dumps 또는 json.loads과 상당히 혼동됩니다. json 또는 simplejson으로 작업해야합니까?

+0

나는 해결책을 가지고있다 -에 대해 하나의 : 남성의 언급에 대한 : \t 무 = 언급 [ '사용자'] \t,\t tweetid = [ 'ID'] \t usern = 무 [ 'SCREEN_NAME'] \t 인쇄 tweetid \t 인쇄 usern – hildwin

답변

2

json (또는 정확하게 동일한 라이브러리 인 simplejson)을 사용할 필요가 없으며 Python과 함께 번들로 바뀌 었습니다. Twython 라이브러리가 이미 JSON에서 모든 것을 디코딩했습니다.

API에서 목록을 얻었 으면 각 항목은 dict입니다. 그러한 사전은 각각 Tweet입니다. Twitter API documentation에 무엇이 포함되어 있는지 확인할 수 있습니다. 그 목록을 반복하십시오. 일부 항목 자체를 사전 또는 나열

for mention in men: 
    print mention['user']['screen_name'] 
    if mention['contributors']: 
     print [con['screen_name'] for con in mention['contributors']] 

는 구조화 된 버전을 인쇄 할 pprint.pprint()를 사용하여 전체 구조를 파악하려면

import pprint 

pprint.pprint(men) 

는 파악하기 위해 무엇을 할 수있는 쉽게 만들 것이다 등 루프 이상은,

+0

감사를 언급,하지만 난 오류 얻을 : 아마도 내가 언급해야 'SCREEN_NAME' : KeyError를을 u'entities ': {u'symbols'[] \t u'user_mentions ': [{u'id'1457484992, \t u'indices 'SCREEN_NAME는 이 마치 실체의 일부 : [0, 8], \t u'id_str ': u'1457484992', \t u'screen_name ': u'CyclopT', .... – hildwin

+0

@ hildwin : 이전 편집에서 오류가 발생했습니다. 당신이 사용한 걸 말해 줄 수 있어요? 'pprint' 트릭을 사용하여 목록이 무엇이고 사전이 무엇인지 파악하십시오. –

+0

두 번째 루프가 작동하지 않습니다.구조는 다음 'u'user ': {u'screen_name'u'NAME ' (더 많은 물건) }' – hildwin