I'm having some issues with this, I keep getting:
AttributeError: 'int' object has no attribute 'encode' 
When I run it.
I thought UTF-8 would be the go to for this. Subscribers will only ever return numbers, or NoneTypes.
Any help would be greatly appreciated.
import urllib2,time,csv,json,requests,urlparse,pdb
SEARCH_URL = urllib2.unquote("http://soyuz.elastic.tubularlabs.net:9200/intelligence_v2/channel_intelligence/%s")
reader = csv.reader(open('input.csv', 'r+U'), delimiter=',', quoting=csv.QUOTE_NONE)
#cookie = {"user": "2|1:0|10:1438908462|4:user|36:eyJhaWQiOiA1Njk3LCAiaWQiOiA2MzQ0fQ==|b5c4b3adbd96e54833bf8656625aedaf715d4905f39373b860c4b4bc98655e9e"}
myfile = open('accounts.csv','w')
writer = csv.writer(myfile, quoting=csv.QUOTE_MINIMAL)
processCount = 1
idsToProcess = []
for row in reader:
    if len(row)>0:
        idsToProcess.append(row[0])
#idsToProcess = ['fba_491452930867938']
for userID in idsToProcess:
#   print "fetching for %s.." % fbid
    url = SEARCH_URL % userID
    facebooksubscribers = None
    Instagramsubscribers = None
    vinesubscribers = None
    response = requests.request("GET", url)
    ret = response.json()
    titleResponse = ret['_source']['title']
    try:
        facebooksubscribers = ret['_source']['facebook']['subscribers']          
    except:
        facebooksubscribers = " "
    try:
        instagramsubscribers = ret['_source']['instagram']['subscribers']
    except:
        instagramsubscribers = " "
    try:
        vinesubscribers = ret['_source']['vine']['subscribers']
    except:
        vinesubscribers = " "
    time.sleep(0)
    row = [s.encode('utf-8') for s in [userID,titleResponse,facebooksubscribers,instagramsubscribers,vinesubscribers]]
    writer.writerow(row)
    #writer.writerow([userID,titleResponse,facebooksubscribers,instagramsubscribers,vinesubscribers,twitterURL])
    myfile.flush()
    print u"%s,%s,%s,%s,%s,%s" % (processCount,userID,titleResponse,facebooksubscribers,instagramsubscribers,vinesubscribers)
    processCount += 1
    #print sumEngs
    #print vidToEngs
    #print sum(vidToEngs.values())
myfile.close()
exit()
                Use this :
repr(s).encode('utf-8')
instead of :
s.encode('utf-8')
                        because one of these
[userID,titleResponse,facebooksubscribers,instagramsubscribers,vinesubscribers]
element is int and you can't perform encode operation on int. You may want to do the type casting in your for loop. Replace
row = [s.encode('utf-8') for s in [userID,titleResponse,facebooksubscribers,instagramsubscribers,vinesubscribers]]
with
row = [str(s).encode('utf-8') for s in [userID,titleResponse,facebooksubscribers,instagramsubscribers,vinesubscribers]]
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With