I hope this will be a quick one for someone. I won't paste the entire code as it breaks much earlier than the end.
from urllib.request import urlopen
import urllib.error
import twurl
import json
import sqlite3
import ssl
import pyodbc as odbc
import pandas as pd
TWITTER_URL = 'https://api.twitter.com/1.1/friends/list.json'
#conn = sqlite3.connect('spider.sqlite') #spajas se na bazu spider.sqlite ako ne postoji bit ce kreirana
connection_string = ("Driver={SQL Server Native Client 11.0};"
"Server=ZZ-DB2;"
"Database=RiskMgmt;"
"Trusted_Connection=yes;")
conn = odbc.connect(connection_string) # treba ti za izvrsavanje querya
cur = conn.cursor()
cur.execute('drop table if exists Twitter')
cur.execute('''CREATE TABLE Twitter (name VARCHAR(50), retrieved INT, friends INT)''')
# Ignore SSL certificate errors
ctx = ssl.create_default_context()
ctx.check_hostname = False
ctx.verify_mode = ssl.CERT_NONE
while True:
acct = input('Enter a Twitter account, or quit: ')
if (acct == 'quit'): break
if (len(acct) < 1):
cur.execute('SELECT name FROM Twitter WHERE retrieved = 0 LIMIT 1')
try:
acct = cur.fetchone()[0]
except:
print('No unretrieved Twitter accounts found')
continue
url = twurl.augment(TWITTER_URL, {'screen_name': acct, 'count': '20'})
print('Retrieving', url)
connection = urlopen(url, context=ctx)
data = connection.read().decode()
headers = dict(connection.getheaders())
print('Remaining', headers['x-rate-limit-remaining'])
js = json.loads(data)
# Debugging
# print json.dumps(js, indent=4)
cur.execute('UPDATE Twitter SET retrieved=1 WHERE name = ?', (acct, ))
Code breaks here:
cur.execute('SELECT name FROM Twitter WHERE retrieved = 0 LIMIT 1')
suggesting there is an issue with the query. This is the error message I am getting:
('42000', "[42000] [Microsoft][SQL Server Native Client 11.0][SQL Server]Incorrect syntax near 'LIMIT'. (102) (SQLExecDirectW)")
I don't know why. I browsed through other posts on this topic with no luck. Thanks