Найти - Пользователи
Полная версия: Сравнение списков из двух циклов
Начало » Python для новичков » Сравнение списков из двух циклов
1
irgit
Первый пост и собственно сам вопрос в комментариях:

 import feedparser
import pymysql.cursors
import facebook
url = feedparser.parse('rss.xml)
connection = pymysql.connect()
#в базе сохранены новости и их ссылки. Проходим циклом
cur = connection.cursor()
cur.execute("SELECT rssfb.link FROM rssfb")
for row in cur:
    link1 = row.get('link')
#парсер rss, получаем список из rss
for e in url['entries']: #Вопрос1 в циуле можно делать построковую выборку из другого списка (массива или словаоря)?
    link2 = e.get('link','')
    if link1 == link2: #Вопрос 2 Как сравнить два списка полученные циклом for? Правльна ли консткрукция?
      #пропускаем
    else:
      #Если в базе такой новости нет, то отправляем в ФБ. Заранее спасибо!
papuas


irgit
if link1 == link2: #Вопрос 2 Как сравнить два списка полученные циклом for? Правльна ли консткрукция?
нет, в link1 будет последнее значение
крутите 2 цикла или сохраните данные после первого цикла, но так делать не кошерно.
PEHDOM
сделайте link1 b link2 множествами(set) и сделайте разность , на выходе получите линки которые есть в link1 но нету в link2
 link1 = set()
for row in cur:
    link1.append(row.get('link'))
....
# также делаем для link2
....
diff_links =  link1.difference( link2) #линки котороые есть в link1 но нету в link2
if  diff_links:#     если новое множество не пустое     
    for link in diff_links:
        #, отправляем в ФБ...

irgit
PEHDOM
сделайте link1 b link2 множествами(set) и сделайте разность , на выходе получите линки которые есть в link1 но нету в link2
спасибо большое, я счастлив)
irgit
Ребята, опять затык (простите только учусь). Вот такая конструкция, которая должна через pymysql писать ссылки в таблицу mysql

 if  diff_links:
    for linkfb in diff_links: #ссылки
            with connection.cursor() as cursor: 
                ql = ("INSERT INTO `fburl`(`url`) VALUES" + '("'+ linkfb + '");') #вроде исполняется, но в таблицу не пишется. Почему?
                cursor.execute(ql)
Похоже синтаксис, но не могу увидеть явную проблему. Так же хотелось бы узнать ваше мнение о структуре конструкции. Хочется сразу учится с грамотных конструкций. Заранее спасибо.
irgit
irgit
Ребята, опять затык (простите только учусь). Вот такая конструкция, которая должна через pymysql писать ссылки в таблицу mysql

разобрался в чем дело. Оказывается сам mysql воспринимал записи как дублирующие и не писал их в базу, а я воспринимал как ошибку. Все безупречно работает

 with connection.cursor() as cursor:
    cursor.executemany("INSERT INTO `fb`(`url`) VALUES (%s)", link )
    connection.commit()
irgit
Ура! Мой первый проект на https://github.com/tarbagan/rss_to_facebook
Спасибо всем)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB