def tweet_wordcloud_from_json(tweet_json, analyzer): decoded = tweet_json tweet_id = decoded['id'] created_at = decoded['created_at'] dt = datetime.strptime(created_at[4:], "%b %d %H:%M:%S +0000 %Y") created_at_utc_date = dt.strftime('%Y-%m-%d') created_at_utc_time = dt.strftime('%H:%M:%S') user_name = None if decoded['user']['name']: user_name = Util.clean_text(decoded['user']['name'].strip().encode('ascii', 'ignore')) screen_name = decoded['user']['screen_name'] user_desc = None if decoded['user']['description']: user_desc = Util.clean_text(decoded['user']['description'].strip().encode('ascii', 'ignore')) user_location = None if decoded['user']['location']: user_location = Util.clean_text(decoded['user']['location'].strip().encode('ascii', 'ignore')) # text = Util.clean_text(decoded['text'].strip().encode('utf-8')).decode('utf-8') text = Util.clean_text(decoded['text'].strip().encode('ascii', 'ignore')) # text for the meantime sentiment, wordarray = analyzer.sentiment(text) favorite_count = decoded['favorite_count'] retweet_count = decoded['retweet_count'] # latitude, longitude latitude = None longitude = None if decoded['geo'] is not None: latitude = decoded['geo']['coordinates'][0] longitude = decoded['geo']['coordinates'][1] # place_name, place_full_name, place_country, place_country_code, alt_longitude, alt_latitude place_name = None place_full_name = None place_country = None place_country_code = None alt_latitude = None alt_longitude = None if decoded['place'] is not None: place_name = decoded['place']['name'].encode('ascii', 'ignore') place_full_name = decoded['place']['full_name'].encode('ascii', 'ignore') place_country = decoded['place']['country'].encode('ascii', 'ignore') place_country_code = decoded['place']['country_code'].encode('ascii', 'ignore') alt_longitude, alt_latitude = Util.get_alternative_coordinates(decoded['place']['bounding_box']['coordinates'][0]) tweet_obj = Tweet(tweet_id, created_at, created_at_utc_date, created_at_utc_time, user_name, screen_name, user_desc, user_location, text, favorite_count, retweet_count, latitude, longitude, place_name, place_full_name, place_country, place_country_code, alt_latitude, alt_longitude, sentiment) return tweet_obj, [word.lower() for word in wordarray]