示例#1
0
    def download_Tuits(self, json_object=None):  #QUITAR TODOS LOS STR
        con = Conexion()
        values = []
        lista_keys = []
        key = self.quita_Key('str', json_object.keys())

        for col in key:  #puse los nombres de las columnas que especificamente no queria por que hay veces que no aparecen y tienen nonetype y al almacenar en la base saldra error
            #print json_object.get('coordinates')
            if type(json_object.get(col)) != list and type(
                    json_object.get(col)
            ) != dict and json_object.get(
                    col
            ) != None:  #and col != 'coordinates'and col != 'geo':#col != 'entities' and col != 'geo' and col != 'user' and col != 'place' and col != 'coordinates'and col != 'extended_entities' and col != 'quoted_status':
                #al if le puse diferente de NOne para que toda llave que no tenga un valor asociado no la guardo en la base
                #la base de datos por default le pone null
                if col == 'created_at':
                    created = str(json_object.get(col))
                    arreglo = created.split(" ")
                    #obtengo la hora con python
                    fecha = (
                        time.strftime("%y-%m-%d")
                    )  #'{0}-{1}-{2}'.format(arreglo[5],arreglo[1],arreglo[2])
                    lista_keys.append('fecha')
                    values.append(fecha)
                    lista_keys.append('hora')
                    values.append(time.strftime("%X"))

                else:
                    lista_keys.append(col)  #construir cadena
                    values.append(json_object.get(col))
        #lista_keys = self.quita_Key('str', lista_keys)
        #values = self.get_Valores(lista_keys, json_object)
        lista = ','.join(x for x in lista_keys)
        con.insertTuit(lista, values, 'tuits')
示例#2
0
    def hash_users(self, arr=None, id=None, tabla=None, remove_cad=None):
        con = Conexion()

        for i in range(
                0, len(arr)
        ):  # esta dentro del for por que puede haber muchos hastags o user mentios por tuit
            values = []
            list_keys = []

            list_keys = arr[i].keys()
            values = arr[i].values()

            if remove_cad != None:  #quito str de user mentions
                for j in list_keys:  #ARREGLAR ESTO ****************
                    if str(j).find(remove_cad) > 0:
                        ind = list_keys.index(str(j))
                        print(values.pop(ind))  #'''
                list_keys = self.quita_Key(remove_cad, list_keys)

            list_keys = self.quita_Key('indices', list_keys)

            lista = ','.join(x for x in list_keys)
            lista = lista + ',' + 'ind_inicial' + ',' + 'ind_final' + ',' + 'id_tuits'
            #necesito el valor de inidice que es un arreglo [a,b] despues de sacar sus valores a y b ahora si pop
            for x in range(0, len(values) - 1):  #esto es para los indices
                if type(values[x]) == list:
                    values.append(values[x][0])
                    values.append(values[x][1])
                    values.pop(x)
            values.append(id)
            con.insertTuit(lista, values, tabla)
            lista = None
            values = None
            list_keys = None
示例#3
0
    def download_User(self, json_object=None, id=None):
        con = Conexion()
        values = []
        lista_keys = []
        aux = []
        palabras = ['profile', 'str']

        lista_keys = self.quitaColumnasNull(json_object.keys(), json_object)
        for i in palabras:
            lista_keys = self.quita_Key(i, lista_keys)

        values = self.get_Valores(lista_keys, json_object)
        lista_keys.append('id_tuit')
        values.append(id)
        lista = ','.join(x for x in lista_keys)
        con.insertTuit(lista, values, 'usuarios')
示例#4
0
    def download_Place(self, json_object=None, id=None):
        con = Conexion()
        values = []
        lista_keys = []

        key = self.quitaColumnasNull(json_object.keys(), json_object)

        for i in key:
            if type(json_object.get(i)) != dict and type(
                    json_object.get(i)) != list:
                lista_keys.append(i)
                values.append(json_object.get(i))

        lista_keys.append('id_tuit')
        values.append(id)
        lista = ','.join(x for x in lista_keys)
        con.insertTuit(lista, values, 'Place')
示例#5
0
    def download_Coord(self, json_object=None, id=None):

        con = Conexion()
        values = []
        lista_keys = []
        key = self.quitaColumnasNull(json_object.keys(), json_object)
        for i in key:
            if i == 'type':
                lista_keys.append(i)
                values.append(json_object.get(i))
            else:
                arr = json_object.get(i)
                lista_keys.append('latitud')
                values.append(arr[1])
                lista_keys.append('longitud')
                values.append(arr[0])
                #values.append(json_object.get(i))
                lista_keys.append('id_tuit')
                values.append(id)
                lista = ','.join(x for x in lista_keys)
        con.insertTuit(lista, values, 'coordenadas')
示例#6
0
 def download_Bounding(self, json_object=None, id=None):
     con = Conexion()
     values = []
     lista_keys = []
     val = json_object.values()  #saco los valores de las llaves
     #el valor val[1] es [[[-99.364536, 19.232313], [-99.364536, 19.405081], [-99.246625, 19.405081], [-99.246625, 19.232313]]]
     #el val[1][0] es [[-99.191996, 19.357102], [-99.191996, 19.404124], [-99.130965, 19.404124], [-99.130965, 19.357102]]
     for x in val[1][0]:
         val_box = []
         list_box = []
         list_box.append('id')
         val_box.append(id)
         list_box.append('type')
         val_box.append(json_object.get('type'))
         list_box.append('longitud')
         val_box.append(x[0])
         list_box.append('latitud')
         val_box.append(x[1])
         lista_str = ','.join(x for x in list_box)
         con.insertTuit(lista_str, val_box, 'Boundings')
         lista_str = None
         list_box = None
         val_box = None
示例#7
0
    def download_Entities(self, json_object=None, id=None):
        con = Conexion()
        values = []
        lista_keys = []

        key = json_object.keys()

        for i in key:
            #print '{0}{1}'.format(i,type(ent.get(i)))
            if 'hashtags' == i:
                arr = json_object.get(i)
                #print arr
                if len(arr) > 0:
                    self.hash_users(arr, id, i, None)

            elif 'user_mentions' == i:
                arr = json_object.get(i)  #devuelve dict
                if len(arr) > 0:
                    self.hash_users(arr, id, i, 'str')