sentiment - twitter bot python
analizar un feed de Twitter en Python en una tabla (1)
Tener un conjunto de tweets que se han guardado en un archivo .txt.
Quiero colocar ciertos atributos en una tabla sqlite en Python. Creé exitosamente la tabla.
import pandas
import sqlite3
conn = sqlite3.connect(''twitter.db'')
c = conn.cursor()
c.execute(CREATE TABLE Tweet
(
created_at VARCHAR2(25),
id VARCHAR2(25),
text VARCHAR2(25)
source VARCHAR2(25),
in-reply_to_user_ID VARCHAR2(25),
retweet_Count VARCHAR2(25)
)
Antes incluso de intentar agregar los datos analizados en el db, traté de crear un marco de datos con él solo para ver.
tweets =pandas.read_table(''file.txt'', sep='','')
Me sale el error:
CParserError: Error tokenizing data. C error: Expected 63 fields in line 3, saw 69
Mi suposición es que hay '','' no solo separando los campos, sino también dentro de los hilos.
Además, los datos de Twitter vienen en un formato con el que no he trabajado antes. Cada campo comienza con el nombre de la variable entre paréntesis, dos puntos, luego los datos separados por más paréntesis. Me gusta:
"created_at":"Fri Oct 11 00:00:03 +0000 2013",
Entonces, ¿cómo puedo obtener esto en un formato de tabla estándar con los nombres de las variables en la parte superior?
Un ejemplo completo de un tweet es este:
{"created_at":"Fri Oct 11 00:00:03 +0000 2013","id":388453908911095800,"id_str":"388453908911095809","text":"LAGI PUN VISITORS DATANG PUKUL 9 AH","source":"<a href=/"http://www.tweetdeck.com/" rel=/"nofollow/">TweetDeck</a>","truncated":false,"in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"user":{"id":447800506,"id_str":"447800506","name":"§yazwina·","screen_name":"_SAireen","location":"SSP","url":"http://flavors.me/syazwinaaireen#","description":"Absence makes the heart grow fonder. Stay us x @_DFitri''s","protected":false,"followers_count":806,"friends_count":702,"listed_count":2,"created_at":"Tue Dec 27 08:29:53 +0000 2011","favourites_count":7478,"utc_offset":28800,"time_zone":"Beijing","geo_enabled":true,"verified":false,"statuses_count":32558,"lang":"en","contributors_enabled":false,"is_translator":false,"profile_background_color":"DBE9ED","profile_background_image_url":"http://a0.twimg.com/profile_background_images/378800000056283804/65d84665fbb81deba13427e8078a3eff.png","profile_background_image_url_https":"https://si0.twimg.com/profile_background_images/378800000056283804/65d84665fbb81deba13427e8078a3eff.png","profile_background_tile":true,"profile_image_url":"http://a0.twimg.com/profile_images/378800000264138431/fd9d57bd1b1609f36fd7159499a94b6e_normal.jpeg","profile_image_url_https":"https://si0.twimg.com/profile_images/378800000264138431/fd9d57bd1b1609f36fd7159499a94b6e_normal.jpeg","profile_banner_url":"https://pbs.twimg.com/profile_banners/447800506/1369969522","profile_link_color":"FA0096","profile_sidebar_border_color":"FFFFFF","profile_sidebar_fill_color":"E6F6F9","profile_text_color":"333333","profile_use_background_image":true,"default_profile":false,"default_profile_image":false,"following":null,"follow_request_sent":null,"notifications":null},"geo":null,"coordinates":null,"place":null,"contributors":null,"retweet_count":0,"favorite_count":0,"entities":{"hashtags":[],"symbols":[],"urls":[],"user_mentions":[]},"favorited":false,"retweeted":false,"filter_level":"medium","lang":"it"}
Me imagino que ya hay una biblioteca de Python para esto, pero pude hacer que tu cadena de tweets se convirtiera en un diccionario una vez que reemplacé estos términos que aparecen sin comillas.
false to False
true to True
null to None
Acabo de asignar toda la expresión entre corchetes a una variable, creando un diccionario. Luego, puede ir e imprimir las claves como un encabezado y cada valor como una entrada.
Reparar o citar esos tres valores también podría hacer que el analizador de pandas
también sea más feliz, aunque creo que un lector de csv podría lidiar mejor con todas las comas integradas y las comillas simples y dobles. El analizador JSON todavía se atragantó con la URL que tiene dos puntos, creo. Puede intentar escaparse de ellos si va a probar JSON.