csv_writer = csv.DictWriter什么意思
时间: 2024-01-09 18:05:54 浏览: 28
`csv.DictWriter` 是 Python 内置模块 `csv` 中的一个类,它提供了一种将 Python 字典数据写入 CSV 格式文件的方法。CSV(Comma-Separated Values)即逗号分隔值,是一种常见的文本格式,用于将表格数据存储为纯文本文件。`csv.DictWriter` 可以将 Python 字典中的键值对转换为 CSV 文件中的行和列,其中字典的键用作 CSV 文件的列标题,字典的值用作 CSV 文件的行数据。比如,我们可以使用 `csv.DictWriter` 将一个包含学生信息的字典列表写入一个 CSV 文件中,每行对应一个学生的信息,每列分别对应学生的姓名、年龄、性别等属性。
相关问题
import requests import parsel import csv f = open('射击.csv', mode='w', encoding='utf-8-sig', newline='') csv_writer = csv.DictWriter(f, fieldnames=['游戏名字', '游戏地址']) csv_writer.writeheader() for page in range(1, 300): url = 'https://www.4399.com/flash_fl/4_1.htm'.format(page) headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36' } response = requests.get(url=url, headers=headers) response.encoding = response.apparent_encoding selector = parsel.Selector(response.text) lis = selector.css('#classic li') for li in lis: dit ={} data_url = li.css('a::attr(href)').get() new_url = 'http://www.4399.com' + data_url.replace('http://','/') dit['游戏地址'] = new_url title = li.css('img::attr(alt)').get() dit['游戏名字'] = title print(title, new_url) csv_writer.writerow(dit)怎么改成用xpath的
你可以将 `selector = parsel.Selector(response.text)` 改为 `selector = etree.HTML(response.text)`,然后使用 XPath 语法来解析 HTML 页面,下面是修改后的代码:
```
import requests
from lxml import etree
import csv
f = open('射击.csv', mode='w', encoding='utf-8-sig', newline='')
csv_writer = csv.DictWriter(f, fieldnames=['游戏名字', '游戏地址'])
csv_writer.writeheader()
for page in range(1, 300):
url = 'https://www.4399.com/flash_fl/4_1.htm'.format(page)
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36'
}
response = requests.get(url=url, headers=headers)
response.encoding = response.apparent_encoding
selector = etree.HTML(response.text)
lis = selector.xpath('//*[@id="classic"]/li')
for li in lis:
dit = {}
data_url = li.xpath('a/@href')[0]
new_url = 'http://www.4399.com' + data_url.replace('http://', '/')
dit['游戏地址'] = new_url
title = li.xpath('a/img/@alt')[0]
dit['游戏名字'] = title
print(title, new_url)
csv_writer.writerow(dit)
f.close()
```
这里使用 XPath 语法,将 `lis` 变量中的值直接改为 `li`,然后在内部使用 XPath 表达式来获取游戏地址和游戏名称。
csv_writer = csv.DictWriter(f,fieldnames=['排名','标题','热度'])这段代码是什么意思
这段代码是用来初始化一个 csv.DictWriter 对象,用于将数据写入到之前打开的名为 resoubang.csv 的文件中。其中,'f' 是文件句柄,'fieldnames' 是一个列表,包含了要写入到文件中的每一列的列名。在这个例子中,有三列,分别为 '排名'、'标题' 和 '热度'。csv.DictWriter 对象会按照指定的列顺序,将每一行数据写入到文件中。使用 csv.DictWriter 对象时,可以通过向 writerow() 方法传递一个字典,来将数据写入到文件中。字典中的键名必须与 'fieldnames' 中的列名一一对应。