Twitter流式API Python-将不完整数据写入文件
我正在使用Twitter流API获取与特定关键字匹配的推文。获得的输出被写入一个文件。我根据tweet发出的距离做了一些基本的比较,并相应地将文件分开Twitter流式API Python-将不完整数据写入文件,python,python-2.7,tweepy,twitter-streaming-api,Python,Python 2.7,Tweepy,Twitter Streaming Api,我正在使用Twitter流API获取与特定关键字匹配的推文。获得的输出被写入一个文件。我根据tweet发出的距离做了一些基本的比较,并相应地将文件分开 lat2=float(d['geo']['coordinates'][0]) long2=float(d['geo']['coordinates'][1]) lat1=venue_latitude long1=venue_longitude lon1, lat1, l
lat2=float(d['geo']['coordinates'][0])
long2=float(d['geo']['coordinates'][1])
lat1=venue_latitude
long1=venue_longitude
lon1, lat1, lon2, lat2 = map(radians, [long1, lat1, long2, lat2])
dlon = lon2 - lon1
dlat = lat2 - lat1
a = sin(dlat/2)**2 + cos(lat1) * cos(lat2) * sin(dlon/2)**2
c = 2 * asin(sqrt(a))
distance = 6367 * c * 0.621371
if distance < 1:
user= d['user']['screen_name']
user_id=d['user']['id']
file=open('Tweets_within_one_mile.txt','a')
users.append(user)
text=str(user) + str(user_id)+ "qwertyasdfgzxcvb" + str(distance) + d['text']
u = text.encode('utf-8')
file.write(u)
file.close()
if distance > 2 and distance < 60:
user= d['user']['screen_name']
user_id=d['user']['id']
file=open('Tweets_within_sixty_miles.txt','a')
users.append(user)
text=str(user) + str(user_id) + str(co_lon2) +d['text']
u = text.encode('utf-8')
file.write(u)
file.close()
lat2=float(d['geo']['coordinates'][0])
long2=浮动(d['geo']['coordinates'][1])
lat1=场地纬度
long1=地点经度
lon1,lat1,lon2,lat2=贴图(弧度,[long1,lat1,long2,lat2])
dlon=lon2-lon1
dlat=lat2-lat1
a=sin(dlat/2)**2+cos(lat1)*cos(lat2)*sin(dlon/2)**2
c=2*asin(sqrt(a))
距离=6367*c*0.621371
如果距离小于1:
user=d['user']['screen\u name']
用户id=d['user']['id']
file=open('Tweets\u在一英里.txt'内,'a')
附加(用户)
text=str(用户)+str(用户id)+“qwertyasdfgzcvb”+str(距离)+d['text']
u=文本编码('utf-8')
文件写入(u)
file.close()文件
如果距离>2且距离<60:
user=d['user']['screen\u name']
用户id=d['user']['id']
file=open('Tweets\u in\u sixth\u miles.txt','a')
附加(用户)
text=str(用户)+str(用户id)+str(克隆2)+d['text']
u=文本编码('utf-8')
文件写入(u)
file.close()文件
上次我运行脚本时。收集到的推特数量约为30000条。但只有20000条推文完全写入了该文件。剩下的1万份是不完整的
Python输出缓冲区有问题吗?我不能确定这就是为什么只保存了部分缓冲区的确切原因,但是构建if语句的方式可能与此有关 例如:
if distance < 1:
print("foo")
if distance > 2 or distance a < 60:
print("bar")
如果距离<1:
打印(“foo”)
如果距离>2或距离a<60:
打印(“条”)
if距离
if distance <= 1:
print("foo")
if 2 <=distance or distance <= 60:
print("bar")