python - Python:csv_writer 在单独的单元格中写入 1 个数字问题
问题描述
我已经构建了一个简单的网络爬虫,可以从给定城市名称的网站获取人口。输出为字符串格式:“City, State | Data USA Population”
例如,为 New Smyrna Beach 运行 print(search.text) 会返回字符串:
佛罗里达州新士麦那海滩 | 数据 美国 25,770
我希望程序把它写在一个 csv 文件中,但是当我想在一个单元格中时,这个数字被分成多列。似乎根本没有写“新士麦那海滩,佛罗里达州 | Data USA”,为什么?
这是我编写 csv 的代码:
import csv
with open('population.csv', 'w') as f:
thewriter = csv.writer(f)
thewriter.writerow(search.text)
这是我在 CSV 文件中的输出。
2| 5| ,| 7| 7| 0| (每个 | 表示一个新列)我希望 csv 文件像这样在一个单元格中写入 25,770。也不是必需的,但如果程序实际上也写了城市名称,这将很有用。我做错了什么?
解决方案
鉴于您无法拆分,
或
由于您的人口包含逗号和您的城市名称包含空格。我们可以通过几种方式做到这一点。
- 对两者执行两次拆分,
,
并slice
- 使用正则表达式提取信息
分裂
search = 'New Smyrna Beach, FL | Data USA 25,770'
with open('test.csv', 'w') as f:
writer = csv.writer(f)
writer.writerow([search.split(',')[0], search.split(' ')[-1]])
正则表达式
import re
with open('test.csv', 'w') as f:
writer = csv.writer(f)
city = re.match(r'^([^,]*)', search).group(0)
population = re.findall(r'(\d+,\d+)', search)[0]
writer.writerow([city, population])
输出
推荐阅读
- maven - 来自 mvnrepository.com 的一个 maven 依赖项已解决,而另一个则没有
- postgresql - psql 从 json 数组中选择条件
- xamarin - 扫描图库中的图像时,Xamarin.Forms ZXing BarcodeReaderGeneric 返回 null
- java - 将 Spring Batch Java 项目的 spring-boot/spring-framework 升级到 2.xx/5.xx,现在数据未写入/保存到数据库 (Postgresql)
- wordpress - 使用 WP All Import 更新变体
- google-cloud-platform - 错误:(gcloud.composer.environments.update)当 terraform 作为第二个帐户运行时无法模拟
- php - Codeigniter 3:日期总是在表单操作后显示 0000-00-00
- java - jcs JDBC 磁盘缓存是否适用于 postgres?
- javascript - 带有模糊搜索的自动完成文本框
- asp.net-core - 基于 .NET Core 的 SignalR 客户端和 Redis 背板接收重复消息