首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python: csv_writer在单独的单元格中写入1个数字的问题

Python: csv_writer在单独的单元格中写入1个数字的问题
EN

Stack Overflow用户
提问于 2021-02-12 07:35:38
回答 1查看 29关注 0票数 0

我已经建立了一个简单的网络摩天大楼,从一个给定城市名称的网站上获取人口。输出的字符串格式为:"City,State | Data USA Population“

例如,对于新士麦那海滩,运行print(search.text)将返回以下字符串:

佛罗里达州新士麦那海滩| Data USA 25,770

我希望程序将其写在csv文件中,但当我希望它在一个单元格中时,数字被分隔在多个列中。看起来“新士麦那海滩,佛罗里达州|数据美国”根本没有被写入,为什么?

下面是我编写csv的代码:

代码语言:javascript
复制
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,就像这样。也不是必需的,但如果程序实际上也写入了城市名称,则会很有用。我做错什么了?

EN

回答 1

Stack Overflow用户

发布于 2021-02-12 07:59:14

假设您不能在,上拆分,或者由于您的人口包含逗号和您的城市名称包含空格。我们可以通过几种方式做到这一点。

使用列表slice

  • Use正则表达式对和和执行两次拆分,返回正确的位置,以提取信息

拆分

代码语言:javascript
复制
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]])

正则表达式

代码语言:javascript
复制
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])

输出

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66164549

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档