Python 单位(亿万)转数字
Posted 在奋斗的大道
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 单位(亿万)转数字相关的知识,希望对你有一定的参考价值。
需求背景
今天在爬取长沙链接二手房数据的时候,需要将房屋总价和单价转换为数字进行存储
python 功能代码:
实现str 转int,要求:包含'亿' =1e8, 包含'万' = 1e4 。功能代码如下:
def str2value(valueStr):
valueStr = str(valueStr)
idxOfYi = valueStr.find('亿')
idxOfWan = valueStr.find('万')
if idxOfYi != -1 and idxOfWan != -1:
return int(float(valueStr[:idxOfYi])*1e8 + float(valueStr[idxOfYi+1:idxOfWan])*1e4)
elif idxOfYi != -1 and idxOfWan == -1:
return int(float(valueStr[:idxOfYi])*1e8)
elif idxOfYi == -1 and idxOfWan != -1:
return int(float(valueStr[idxOfYi+1:idxOfWan])*1e4)
elif idxOfYi == -1 and idxOfWan == -1:
return float(valueStr)
实例:
# 创建文件
f = open('长沙二手房数据清洗.csv', mode='a', encoding='utf-8', newline='')
csv_writer = csv.DictWriter(f, fieldnames=['标题', '小区', '地名', '房子基本信息',
'房价', '单价', '发布信息'])
# 写入表头
csv_writer.writeheader()
with open('长沙二手房数据.csv', 'rt', newline='', encoding='utf-8', errors='ignore') as f:
csv_read = csv.reader(f)
for line in csv_read:
if len(line):
txt = line[0]
if txt != '标题' and txt != '':
print('总价', line[4])
unitPrice = 0
Price = 0
if line[4].find('万') > 0:
Price = str2value(line[4])
print('是否包含万', str2value(line[4]))
if line[5].find('元/平') > 0:
unitPrice = int(str(line[5].replace('元/平', '').replace(',', '')))
print('是否包含元/平', int(str(line[5].replace('元/平', '').replace(',', ''))))
print('单价', line[5])
print(line)
dit = {
'标题': line[0],
'小区': line[1],
'地名': line[2],
'房子基本信息': line[3],
'房价': Price,
'单价': unitPrice,
'发布信息': line[6],
}
csv_writer.writerow(dit)
效果截图:
以上是关于Python 单位(亿万)转数字的主要内容,如果未能解决你的问题,请参考以下文章
django.core.exceptions.ImproperlyConfigured: Requested setting DEFAULT_INDEX_TABLESPACE的解决办法(转)(代码片段
django.core.exceptions.ImproperlyConfigured: Requested setting DEFAULT_INDEX_TABLESPACE的解决办法(转)(代码片段