파일에서 1000 개의 트윗을 읽으려고합니다.
http://rasinsrv07.cstcis.cti.depaul.edu/CSC455/Twitter_2013_11_12.txt
트윗은 줄 단위로 저장됩니다. 'geo'항목에 대한 SQL 테이블을 만들어야합니다. 'Geo'는 트윗 사전 내부의 사전입니다. 어떤 경우에는 사전 'geo'가 완전히 비어 있고 경우에 따라 값이 있습니다. 비어있는 Geo 사전의 수와 Vlau가있는 사전을 추적해야합니다. 해당 테이블에 대한 고유 ID를 생성해야합니다. ID 열 외에도 지역 테이블에는 "유형", "경도"및 "위도"열이 있어야합니다. 지역 사전에 값이있는 경우 다음과 같습니다.
{u'type': u'Point', u'coordinates': [44.49241705, 11.33374359]}
Python과 SQLITE를 처음 접했기 때문에 내 코드는 기본이며 (내 코드를 이해하고 싶기 때문에) 예상대로 작동하지 않습니다. 지역 사전의 길이가 1보다 크면 Geo 테이블에 삽입을 시도하고 있지만 작동하지 않습니다. 어떤 입력이라도 대단히 감사하겠습니다.
import urllib2, time, json, sqlite3
conn = sqlite3.connect('Tweets_Database_A6.db')
c = conn.cursor()
wFD = urllib2.urlopen('http://rasinsrv07.cstcis.cti.depaul.edu/CSC455/Twitter_2013_11_12.txt')
numLines = 1000
tweets = []
while numLines > 0:
line = wFD.readline()
numLines = numLines - 1
try:
tweets.append(json.loads(line))
except:
print line
wFD.close()
#create geo table using sqlite3
TblGeo = """create table Geo(Id number, Type text, Longitude number, latitude number);"""
c.execute(TblGeo)
HasGeo=0
NoGeo=0
for tweet in tweets:
tweet_geo = tweet['geo']
if len(tweet_geo) > 1:
HasGeo = HasGeo+1
try:
c.execute("insert into Geo(id, Type, Longitude, Latitude) values ('%s', '%s', '%s', '%s')" %(HasGeo, tweet_geo['type'], tweet_geo['coordinates'][0], tweet_geo['coordinates'][1]))
except:
print "no entry for " , i
else:
NoGeo = NoGeo+1
print HasGeo, " ", NoGeo
코드가 몇 가지 이유로 실패합니다. 이것이 과제 인 것처럼 보이기 때문에 여기에 작업 코드를 게시하지 않겠지 만 올바른 방향을 알려드 리도록 노력하겠습니다. 다음은 코드를 테스트하는 동안 발견 한 몇 가지 사항입니다.
도움이 되었기를 바랍니다. 난처한 경우 추가 설명을 자유롭게 요청하십시오.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다