Сценарий Python для MySql распечатывает объект SRE_Match по строкам 0x7f79ce81b440>, как я могу получить его для печати фактических результатов запроса?

0

Я выполняю поиск координат широты/долготы в сообщениях в таблице, акар. , Directional char комбо, например N или NW, за которыми следуют 5 цифр, сценарий запускается, однако он просто дает мне такие строки:

<_sre.SRE_Match object at 0x7f79ce81b440>
<_sre.SRE_Match object at 0x7f79ce81b440>
<_sre.SRE_Match object at 0x7f79ce81b440>
<_sre.SRE_Match object at 0x7f79ce81b440>
<_sre.SRE_Match object at 0x7f79ce81b440>
<_sre.SRE_Match object at 0x7f79ce81b440>

Я хочу увидеть результаты моего сценария (широта/долгота), я пробовал эти решения, и все они привели к тому, что терминал просто остановился навсегда, когда я пытаюсь выполнить код. Также я попробовал предложение для.search() отсюда с тем же результатом. Попробовал опцию Findall и получил бесконечные строки PBI D024

Я использую VM на основе Unix (ScotchBox) для запуска mysql на терминале в этой среде, Windows 10 PC

Код:

#!/usr/bin/python

# from: http://www.mysqltutorial.org/python-mysql-query

import mysql.connector
import re
import datetime

# Open connection.  My database is named planes.  If you named yours something else
# then change the database= here. 
db = mysql.connector.connect(host='localhost',database='planes',user='root',password='root')

# prepare a cursor "SELECT * from planes.acars limit 10")
cursor = db.cursor ( )

# Do the query -- the limit is just to keep this small, you will not need it

query = ("SELECT msg_text FROM acars "
"WHERE date_time_stamp BETWEEN %s AND %s")
first_of_june = datetime.date(2016, 6,1)
last_of_june = datetime.date(2016, 6,30)
cursor.execute(query, (first_of_june, last_of_june))
# Fetch rows
data = cursor.fetchone ( )
while data is not None:
    coordinates = re.compile ("N|NW|S|SW|E|NE|S|SE^[0-9]{5}")
    print(coordinates.search(str(data)))
    data = cursor.fetchone()

# close cursor
cursor.close ( )

# close connection
db.close ( )

Любая помощь высоко ценится!!

  • 0
    print(coordinates.search(str(data)).group(0)) должно работать
Теги:

1 ответ

0

"Объект SRE_Match" означает, что поисковый запрос получил успешный хит шаблона поиска.

Мы можем распечатать все согласованные результаты, используя sre_match_object.groups()

Повторная запись цикла while была прервана версией результатов поиска:

while data is not None:
    coordinates = re.compile ("N|NW|S|SW|E|NE|S|SE^[0-9]{5}")
    match_obj = coordinates.search(str(data))
    if match_obj:
        print(match_obj.groups())
    data = cursor.fetchone()

-Ram

  • 0
    Все, что я получаю с этим много ()
  • 0
    Чтобы избавиться от () из оператора печати, используйте print (match_obj.groups () [0]) вместо print (match_obj.groups ()). На самом деле match_obj.groups () возвращает набор совпадающих элементов. Таким образом, приведенная выше команда печатает первый элемент из совпадающих записей.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню