Ad

How To Filter The List Of Dictionaries If Its Key Is In The Filtered List?

- 1 answer

I am using code to filter the output (which is a list of dictionaries) according to the predetermined list (in code: filteredList).

I tried the outcome variable to filter the list of dictionaries.

from bs4 import BeautifulSoup as bs
import requests
import pprint

urls = ['https://e-mehkeme.gov.az/Public/Cases?page=1',
        'https://e-mehkeme.gov.az/Public/Cases?page=2'
        ]


def get_soup(url):
    r = s.get(url)
    soup = bs(r.content, 'lxml')
    return soup


def pageNumber(url):
    response = requests.get('https://e-mehkeme.gov.az/Public/Cases')
    soup = bs(response.content, "html.parser")
    content = str(soup.find("li", class_="disabled PagedList-pageCountAndLocation").find("a", recursive=False))
    number = int("".join(filter(str.isdigit, content))) / 100
    return int(number)


print(pageNumber('https://e-mehkeme.gov.az/Public/Cases'))


filteredList = ['AZƏRBAYCAN DƏMİR YOLLARI',
                '"AZƏRSU" AÇIQ SƏHMDAR CƏMİYYƏTİ'
                ]
outcomes = []
with requests.Session() as s:
    for url in urls:
        soup = get_soup(url)
        detail_urls = [f'https://e-mehkeme.gov.az/Public/CaseDetail?caseId={i["value"]}' for i in
                       soup.select('.caseId')]
        for next_url in detail_urls:
            soup = get_soup(next_url)
            data = [string for string in soup.select_one('[colspan="4"]').stripped_strings]
            for i in data:
                for j in filteredList:
                        if i in j:
                            outcomes.append(data)
                        else:
                            pass

print(outcomes)

myFile = open('csvexample.csv', 'w')
with myFile:
    writer = csv.writer(myFile)
    writer.writerows(outcomes)

Two problems here: 1. it returns empty lists which should not 2. the output returns only fitered key of dictionaries in the list like below (['Ətraflı məlumat:', 'İşə baxan hakim və ya tərkib', 'Vüqar Həsənov - sədrlik edən hakim', 'Namiq Cəfərov - tərkib üzvü', 'Şərafət Məmmədova - tərkib üzvü', 'Tərəflər', 'Cavabdeh:', '"AZƏRSU" AÇIQ SƏHMDAR CƏMİYYƏTİ', 'İddiaçı:', 'DƏMİROV ELMƏDDİN ƏNVƏR OĞLU', 'İşin mahiyyəti', 'Sair mülki iş - Kommunal xərcləri ilə bağlı istehlakçıların hüquqlarının müdafiəsi'] instead of the only filtered part which is ['"AZƏRSU" AÇIQ SƏHMDAR CƏMİYYƏTİ'])

['Ətraflı məlumat:', 'İşə baxan hakim və ya tərkib', 'Tofiq Səmədov - sədrlik edən hakim', 'Elşən Kazımov - tərkib üzvü', 'İkram Şirinov - tərkib üzvü', 'Tərəflər', 'Cavabdeh:', '"Travelers Coffee Limited" Şirkətinin Azərbaycan Respublikasındakı Filialı', 'İddiaçı:', 'Məmmədov Vaqif İsmayıl', 'İşin mahiyyəti', 'İcarə müqaviləsi üzrə mübahisələr - Digər icarə müqavilələri']
['Ətraflı məlumat:', 'İşə baxan hakim və ya tərkib', 'İlham Kərimli - sədrlik edən hakim', 'Xəyalə Cəmilova - tərkib üzvü', 'İsmayıl Xəlilov - tərkib üzvü', 'Tərəflər', 'Cavabdeh:', 'MİLYAYEVA NATALYA VASİLYEVNA', 'İddiaçı:', 'ƏLİYEV AKİF MUXTAR OĞLU', 'İşin mahiyyəti', 'Mülkiyyət hüququ ilə əlaqədar mübahisələr - Digər']
['Ətraflı məlumat:', 'İşə baxan hakim və ya tərkib', 'Şeyda Məhərrəmova - sədrlik edən hakim', 'Elşad Şamayev - tərkib üzvü', 'Məmməd Məmmədov - tərkib üzvü', 'Xəyal Sarıyev - tərkib üzvü', 'Tərəflər', 'Cavabdeh:', 'ZÖHRABOV ORXAN RAMİZ OĞLU', 'Cavabdeh:', 'RZAYEV ƏLİBALA VASİF OĞLU', 'Cavabdeh:', 'ƏSGƏROV RUHİN İBRAHİM OĞLU', 'İddiaçı:', 'ALLAHVERDİYEVA MƏLAHƏT GÖYÜŞ QIZI', 'İşin mahiyyəti', 'Mənzil mübahisələri - Mənzildən çıxarılma', 'Müqavilənin etibarsız hesab edilməsi tələbi üzrə']
['Ətraflı məlumat:', 'İşə baxan hakim və ya tərkib', 'Xəyal Sarıyev - sədrlik edən hakim', 'Elşad Şamayev - tərkib üzvü', 'Məmməd Məmmədov - tərkib üzvü', 'Şeyda Məhərrəmova - tərkib üzvü', 'Tərəflər', 'Cavabdeh:', 'BAXIŞOV AZAD SİRAC OĞLU', 'Cavabdeh:', 'KAZIMOV İLHAM DAVUD OĞLU', 'Cavabdeh:', '"MƏKAN" MƏNZİL-TİKİNTİ KOOPERATİVİ', 'Cavabdeh:', 'İSAYEVA QƏTİBƏ İSMAYIL QIZI', 'Cavabdeh:', 'BAXIŞOV AZƏR SİRAC OĞLU', 'İddiaçı:', 'HÜSEYNOV CAHANGİR HÜSEYN', 'İşin mahiyyəti', 'Sair mülki iş - Digər']
['Ətraflı məlumat:', 'İşə baxan hakim və ya tərkib', 'İsmayıl Xəlilov - sədrlik edən hakim', 'Xəyalə Cəmilova - tərkib üzvü', 'İlham Kərimli - tərkib üzvü', 'Tərəflər', 'Cavabdeh:', 'Rzayev Fəxrəddin Hidayət', 'Cavabdeh:', 'Rzayev Fəxrəddin', 'Cavabdeh:', 'RZAYEVA İRADƏ ELXAN QIZI', 'İddiaçı:', 'Dəmirov Davud Nüsrət', 'İddiaçı:', 'DƏMİROV DAVUD NÜSRƏT', 'İddiaçı:', 'Rzayeva İradə E', 'İşin mahiyyəti', 'Mülki hüquq pozuntularından (deliktlərdən) əmələ gələn öhdəliklər üzrə mübahisələr - Maddi ziyanın ödənilməsi']
['Ətraflı məlumat:', 'İşə baxan hakim və ya tərkib', 'Xumar Mərdanova - sədrlik edən hakim', 'Elnur Həsənov - tərkib üzvü', 'Fuad Babayev - tərkib üzvü', 'Tərəflər', 'Cavabdeh:', 'MƏMMƏDOV SƏFƏR MƏHƏRLƏM OĞLU', 'İddiaçı:', 'ALLAHVERDİYEV BAYRAM MƏHƏRRƏM', 'İşin mahiyyəti', 'Sair mülki iş - Digər']
['Ətraflı məlumat:', 'İşə baxan hakim və ya tərkib', 'Fuad Babayev - sədrlik edən hakim', 'Elnur Həsənov - tərkib üzvü', 'Xumar Mərdanova - tərkib üzvü', 'Tərəflər', 'Cavabdeh:', '"DAŞINAR VƏ DAŞINMAZ ƏMLAKLARIN QİYMƏTLƏNDİRİLMƏSİ XİDMƏTİ" MƏHDUD MƏSULİYYƏTLİ CƏMİYYƏTİ', 'Cavabdeh:', '"DAŞINAR  VƏ DAŞINMAZ ƏMLAKLARIN SATIŞI ÜZRƏ HƏRRAC MƏRKƏZİ"  MƏHDUD MƏSULİYYƏTLİ CƏMİYYƏTİ', 'İddiaçı:', 'MURADOV İSMAYIL KAMRAN OĞLU', 'İşin mahiyyəti', 'İpoteka müqaviləsi üzrə mübahisələr - İpoteka müqaviləsi ilə bağlı digər mübahisələr']
['Ətraflı məlumat:', 'İşə baxan hakim və ya tərkib', 'Abiddin Hüseynov - sədrlik edən hakim', 'Azad İmanov - tərkib üzvü', 'Vahid Sadıqov - tərkib üzvü', 'Tərəflər', 'Cavabdeh:', 'HƏRRAC MƏRKƏZİ "KÜLƏK" MMC', 'İddiaçı:', 'MUSAYEVA TƏRANƏ MURQUZ QIZI', 'İşin mahiyyəti', 'İpoteka müqaviləsi üzrə mübahisələr - İpoteka üzrə hərracın nəticələrinin ləğv edilməsi üzrə mübahisələr']
['Ətraflı məlumat:', 'İşə baxan hakim və ya tərkib', 'Vüqar Həsənov - sədrlik edən hakim', 'Namiq Cəfərov - tərkib üzvü', 'Şərafət Məmmədova - tərkib üzvü', 'Tərəflər', 'Cavabdeh:', **'"AZƏRSU" AÇIQ SƏHMDAR CƏMİYYƏTİ'**, 'İddiaçı:', 'DƏMİROV ELMƏDDİN ƏNVƏR OĞLU', 'İşin mahiyyəti', 'Sair mülki iş - Kommunal xərcləri ilə bağlı istehlakçıların hüquqlarının müdafiəsi']
['Ətraflı məlumat:', 'İşə baxan hakim və ya tərkib', 'Şərafət Məmmədova - sədrlik edən hakim', 'Namiq Cəfərov - tərkib üzvü', 'Vüqar Həsənov - tərkib üzvü', 'Tərəflər', 'Cavabdeh:', 'AĞAYEV FƏRİD RASİM OĞLU', 'Cavabdeh:', 'ABBASOV RASİM AĞA OĞLU', 'Cavabdeh:', 'ABBASOVA ƏNTİQƏ ŞAHSUVAR QIZI', 'Cavabdeh:', 'ABBASOV AĞA HƏMİŞ OĞLU', 'İddiaçı:', 'MUSAYEV ELŞƏN İSA OĞLU', 'İşin mahiyyəti', 'Mənzil mübahisələri - Mənzilə istifadə hüququna xitam verilməsi']
['Ətraflı məlumat:', 'İşə baxan hakim və ya tərkib', 'Vüqar Həsənov - sədrlik edən hakim', 'Tərəflər', 'Cavabdeh:', '"BAKU ELECTRONİCS" MƏHDUD MƏSULİYYƏTLİ CƏMİYYƏTİ', 'İddiaçı:', 'CƏFƏROV AĞA HƏSƏN OĞLU', 'İşin mahiyyəti', 'Torpaq mübahisələri - Torpaq münasibətləri üzrə sair mübahisələr']
['Ətraflı məlumat:', 'İşə baxan hakim və ya tərkib', 'Abiddin Hüseynov - sədrlik edən hakim', 'Azad İmanov - tərkib üzvü', 'Vahid Sadıqov - tərkib üzvü', 'Tərəflər', 'Cavabdeh:', 'HÜSEYNOVA AYNUR VAQİF', 'İddiaçı:', 'ƏLİZADƏ TÜRKEL SƏRVƏR QIZI', 'İşin mahiyyəti', 'Əmək mübahisələri - Əmək haqqı tələbi']
['Ətraflı məlumat:', 'İşə baxan hakim və ya tərkib', 'Aida Hüseyn - sədrlik edən hakim', 'Etibar Nəbiyev - tərkib üzvü', 'Raqib Qurbanov - tərkib üzvü', 'Tərəflər', 'Cavabdeh:', 'AZƏRBAYCAN TİBB UNİVERSİTETİNİN TƏDRİS CƏRRAHİYYƏ KLİNİKASI', 'Cavabdeh:', 'NƏSİRLİ CƏFƏR ƏLİABBAS OĞLU', 'Cavabdeh:', 'QƏNBƏROV HƏSƏNAĞA MƏMİ', 'Cavabdeh:', 'MƏRKƏZİ DƏNİZCİLƏR XƏSTƏXANASI', 'Cavabdeh:', 'MƏMMƏDOVA HƏCƏR TOFİQ', 'Cavabdeh:', 'BİO LAP TİBB MARKƏZ', 'İddiaçı:', 'ƏLƏKBƏROV XƏYYAM ÜZEYİR OĞLU', 'İşin mahiyyəti', 'Mülki hüquq pozuntularından (deliktlərdən) əmələ gələn öhdəliklər üzrə mübahisələr - Maddi ziyanın ödənilməsi', 'Mülki hüquq pozuntularından (deliktlərdən) əmələ gələn öhdəliklər üzrə mübahisələr - Mənəvi zərərin ödənilməsi']
['Ətraflı məlumat:', 'İşə baxan hakim və ya tərkib', 'Raqib Qurbanov - sədrlik edən hakim', 'Aida Hüseyn - tərkib üzvü', 'Etibar Nəbiyev - tərkib üzvü', 'Tərəflər', 'Cavabdeh:', 'SALMANOV VÜSAL SALMAN OĞLU', 'İddiaçı:', '"TEXNİKABANK" AÇIQ SƏHMDAR CƏMİYYƏTİ (Ləğv prosesindədir)', 'İşin mahiyyəti', 'Kredit müqaviləsi üzrə mübahisələr']
Ad

Answer

Change your last code to:

import csv

outcomes = []
    with requests.Session() as s:
        for url in urls:
            soup = get_soup(url)
            detail_urls = [f'https://e-mehkeme.gov.az/Public/CaseDetail?caseId={i["value"]}' for i in
                           soup.select('.caseId')]
            for next_url in detail_urls:
                soup = get_soup(next_url)
                data = [string for string in soup.select_one('[colspan="4"]').stripped_strings]
                for i in data:
                    for j in filteredList:
                            if i in j:
                                outcomes.append(data)
                            else:
                                pass

    print(outcomes)

    with open('csvexample.csv', 'w', newline='',encoding='utf-8') as myfile:
         writer = csv.writer(myfile, quoting=csv.QUOTE_ALL)
         writer.writerow(outcomes)

I would recommend to attach your outcomes to a list and return the list in the end instead of printing.

Ad
source: stackoverflow.com
Ad