TypeError: первый аргумент должен быть строкой или скомпилированным шаблоном

0

Я извлекаю значения из таблицы базы данных, называемой block_sites. Если значение 0-го атрибута в таблице заблокировано_сайтами представлено 19-м или 26-м полем файла items.csv, то эта строка csv должна быть исключена из файла csv. Я пишу код для этого и получаю эту ошибку:

$ python csv_dupli_prev.py
Traceback (most recent call last):
  File "csv_dupli_prev.py", line 48, in <module>
    found = re.search(row[0], row1[19])
  File "/home/debarati/anaconda3/lib/python3.6/re.py", line 182, in search
    return _compile(pattern, flags).search(string)
  File "/home/debarati/anaconda3/lib/python3.6/re.py", line 300, in _compile
    raise TypeError("first argument must be string or compiled pattern")
TypeError: first argument must be string or compiled pattern

Код выглядит следующим образом:

connection = pymysql.connect (host = "localhost", user = "root", passwd = "......", db = "city_details")          
cursor = connection.cursor ()
csv_file = csv.reader(open("items.csv", "r"))
newrows = []
cursor.execute ("select * from blocked_sites")
data4 = cursor.fetchall ()
for row in data4:
   for row1 in csv_file:
      str1 = row1[19]
      str2 = row1[26]
      found = re.search(row[0], str1)
      found1 = re.search(row[0], str2)
      if found==None and found1==None and row1 not in newrows:
         newrows.append(row1)
writer = csv.writer(open("items.csv", "w"))
writer.writerows(newrows)   
  • 0
    Судя только по сообщению об ошибке (спасибо, что включили все - не все так делают), row[0] не является строкой или скомпилированным шаблоном. Посмотрите на это в отладчике или в операторе print чтобы увидеть, что это такое.
  • 0
    @ArndtJonasson: Я нашел ошибку и исправил ее. Проверьте мой ответ.
Теги:
csv

1 ответ

0
Лучший ответ

Я изменил следующую строку в своем коде:

cursor.execute ("select * from blocked_sites")

к этому:

cursor.execute ("select content from blocked_sites")

и ошибка исправлена.

Ещё вопросы

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