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 单位(亿万)转数字的主要内容,如果未能解决你的问题,请参考以下文章

Python代码阅读(第41篇):矩阵转置

web代码片段

JavaScript笔试题(js高级代码片段)

django.core.exceptions.ImproperlyConfigured: Requested setting DEFAULT_INDEX_TABLESPACE的解决办法(转)(代码片段

django.core.exceptions.ImproperlyConfigured: Requested setting DEFAULT_INDEX_TABLESPACE的解决办法(转)(代码片段

中文汉字转阿拉伯数字