Twitter Streaming API Python - 将不完整的数据写入文件
Twitter Streaming API Python - Writing incomplete data to file
我正在使用 Twitter Streaming API 来获取与特定关键字匹配的推文。获得的输出被写入文件。我根据推文的来源距离进行了一些基本比较,并相应地写入单独的文件。
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()
当我运行上次写脚本的时候。收集到的推文数量约为 30,000 条。但只有 20,000 条推文被完全写入文件。剩下的10000个写的不完整
Python 输出缓冲区有问题吗?
我不能确定这就是为什么只有一部分被保存的确切原因,但你构建 if 语句的方式可能与它有关。
例如:
if distance < 1:
print("foo")
if distance > 2 or distance a < 60:
print("bar")
- 该代码适用于小于但不等于 1 的值。
- 1 到 2 之间的数字无效(即 1.1 到 1.9)
- 等于 2 或 60 的数字
- 大于 60 的数字
同样,不确定您要获取的确切值,但这可能会有所帮助(它将捕获所有数据):
if distance <= 1:
print("foo")
if 2 <=distance or distance <= 60:
print("bar")
我正在使用 Twitter Streaming API 来获取与特定关键字匹配的推文。获得的输出被写入文件。我根据推文的来源距离进行了一些基本比较,并相应地写入单独的文件。
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()
当我运行上次写脚本的时候。收集到的推文数量约为 30,000 条。但只有 20,000 条推文被完全写入文件。剩下的10000个写的不完整
Python 输出缓冲区有问题吗?
我不能确定这就是为什么只有一部分被保存的确切原因,但你构建 if 语句的方式可能与它有关。
例如:
if distance < 1:
print("foo")
if distance > 2 or distance a < 60:
print("bar")
- 该代码适用于小于但不等于 1 的值。
- 1 到 2 之间的数字无效(即 1.1 到 1.9)
- 等于 2 或 60 的数字
- 大于 60 的数字
同样,不确定您要获取的确切值,但这可能会有所帮助(它将捕获所有数据):
if distance <= 1:
print("foo")
if 2 <=distance or distance <= 60:
print("bar")