簡體   English   中英

Python:csv_writer 在單獨的單元格中寫入 1 個數字問題

[英]Python: csv_writer writing 1 number in separate cells problem

我已經構建了一個簡單的網絡爬蟲,可以從給定城市名稱的網站獲取人口。 output 采用字符串格式:“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 文件中的 output。

2| 5|,| 7| 7| 0| (每個 | 表示一個新列)我希望 csv 文件像這樣在一個單元格中寫入 25,770。 也不是必需的,但如果程序實際上也寫了城市名稱,這將很有用。 我做錯了什么?

鑒於您不能拆分, 由於您的人口包含逗號和您的城市名稱包含空格。 我們可以通過幾種方式做到這一點。

  1. 對兩者執行兩次拆分,並且 並返回帶有列表slice的正確 position
  2. 使用正則表達式提取信息

分裂

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])

Output

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM