Ищете способ записать словарь в csv в Python 3 - PullRequest
0 голосов
/ 07 мая 2020

Я пытаюсь найти список данных в Интернете и хочу записать вывод, который представляет собой список словарей, в файл csv. Например, я хочу экспортировать «результаты» в CSV

if resp.status_code == 200:
        soup = BeautifulSoup(resp.content, "html.parser")
        results = []
        for g in soup.find_all('div', class_='r'):
            anchors = g.find_all('a')
            if anchors:
                 link = anchors[0]['href']
                 title = g.find('h3').text
                 item = {
                "title": title,
                "link": link
                   }
                 results.append(item)
                 print(results)

Ответы [ 2 ]

0 голосов
/ 07 мая 2020

Вот пример для этого.

my_dict = {'1': 'aaa', '2': 'bbb', '3': 'ccc'}
with open('test.csv', 'w') as f:
    for key in my_dict.keys():
        f.write("%s,%s\n"%(key,my_dict[key]))

Этот код записывает элементы словаря в файл csv следующим образом:

1,aaa
2,bbb
3,ccc

Если вы пытаетесь написать список словаря, вы должен открыть файл в формате 'a' и запустить его для каждого dict в вашем списке.

0 голосов
/ 07 мая 2020

Почему бы не создать DataFrame, добавить к нему результаты и экспортировать DataFrame в файл .csv?

df = pd.DataFrame(columns=['title', 'link'])

if resp.status_code == 200:
    soup = BeautifulSoup(resp.content, "html.parser")
    results = []
    for g in soup.find_all('div', class_='r'):
        anchors = g.find_all('a')
        if anchors:
            link = anchors[0]['href']
            title = g.find('h3').text
            df = df.append({'title' : title , 'link' : link} , ignore_index=True)

df.to_csv('output.csv')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...