สคริปต์ python ของฉันไม่แสดงพิกัดไม่ว่าฉันจะค้นหาคำหลักคำใดโดยใช้ tweepy

เป้าหมายคือการใช้ Python เพื่อค้นหาทวีตที่มีคำที่ระบุ จับพิกัดละติจูด/ลองจิจูด และเขียนลงใน .csv

อัปเดต: ในขณะนี้ มันส่งคืน "ไม่มีพิกัด" ไม่ว่าฉันจะใช้คำหลักใดก็ตาม

 #All of the consumer keys, tokens, and imports are left out of this sample code. 

file = open("C:\Scripts\Output.csv", "w")
file.write("X,Y\n")

data_list = []
count = 0

class listener(StreamListener):

def on_data(self, data):
    global count

    #How many tweets you want to find, could change to time based
    if count <= 2000:
        json_data = json.loads(data)

        coords = json_data["coordinates"]
        if coords is None:
           print("no coordinates")
        else:
           print(coords["coordinates"])
           lon = coords["coordinates"][0]
           lat = coords["coordinates"][1]

           data_list.append(json_data)

           file.write(str(lon) + ",")
           file.write(str(lat) + "\n")

           count += 1
        return True
    else:
        file.close()
        return False

    def on_error(self, status):
        print(status)

auth = OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_secret)
twitterStream = Stream(auth, listener())
#What you want to search for here
twitterStream.filter(track=["horse"])

ผลลัพธ์ที่คาดหวังจะเป็นไฟล์ CSV ที่มีพิกัดละติจูดและลองจิจูดของทวีตที่มีคำว่า "ม้า" อัปเดต: มันส่งคืน "ไม่มีพิกัด" สำหรับคำหลักใดก็ตามที่ฉันลองใช้


person Anthony Stokes    schedule 10.09.2019    source แหล่งที่มา


คำตอบ (1)


คุณมีคำสั่งแบบมีเงื่อนไขสำหรับ:

if coords is not None:

อย่างไรก็ตาม หาก "coords" เป็น None ก็แสดงว่าโปรแกรมของคุณไม่มีสิ่งที่จับได้ ฉันเดาว่านี่คือจุดที่ข้อผิดพลาดอยู่

แจ้งให้เราทราบหากสิ่งนี้ช่วยได้! ไชโย!

person Shaun Lowis    schedule 10.09.2019
comment
ฉันได้เพิ่มคำสั่ง if else สำหรับการจัดการไม่มีพิกัด และมันยังคงทำงานตลอดไป ฉันลองเปิด CSV และมันบอกว่ามันถูกล็อค อาจเป็นเพราะ python ยังคงเข้าถึงมันอยู่ ข้อเสนอแนะที่ดีฉันขอขอบคุณมัน - person Anthony Stokes; 10.09.2019
comment
มีข้อเสนอแนะอื่นอีกไหม? - person Anthony Stokes; 12.09.2019
comment
ความคิดของฉันคือการเพิ่มคำสั่งการพิมพ์ลงในบรรทัดอื่นๆ ของโค้ดของคุณเพื่อดูว่ามันไปถึงจุดไหนก่อนที่จะแฮงค์ - person Shaun Lowis; 12.09.2019
comment
ฉันใช้โค้ด Visual Studio และเพิ่มเบรกพอยต์ ตอนนี้มันแค่ไม่มีการส่งออกพิกัด ฉันไม่สามารถบอกได้ว่าเป็นสคริปต์ของฉันหรือจริงๆ แล้วไม่พบทวีตที่มีคำว่า ม้า อยู่ในนั้น ความคิด? - person Anthony Stokes; 13.09.2019
comment
ฉันสงสัยว่ามันจะไม่พบทวีตที่มีคำว่า ม้า อยู่ในนั้น เนื่องจากควรให้ผลลัพธ์อย่างน้อยสองสามรายการ มีวิธีใดที่คุณจะตรวจสอบว่าสคริปต์ของคุณขัดถูทวีตอย่างถูกต้องหรือไม่ - person Shaun Lowis; 14.09.2019