elif '元/天' in salary: salary = salary.replace('元/天', '') salary_range = salary.split('-') if len(salary_range) == 2: try: # 按一个月工作22天算 low_salary = float(salary_range[0]) high_salary = float(salary_range[1]) daily_salary = (low_salary + high_salary) / 2 annual_salary = daily_salary * 22 * 12 return annual_salary except ValueError: print(salary) return None
时间: 2023-11-22 11:52:22 浏览: 152
这段代码看起来是用于将“元/天”格式的工资转换为年薪的。它首先移除“元/天”这个字符串,然后将工资范围分为最低工资和最高工资。如果工资范围中有两个数值,它会计算每天的平均工资,并将其乘以每个月工作的天数(这里假设为22天),再乘以12个月,得到年薪。如果出现ValueError异常,则打印出现问题的工资并返回None。
相关问题
import re # 转换薪资字符串方法 def convert_salary_to_monthly_average(salary_str): # 使用正则表达式提取薪资数字 salary_digits = re.findall(r'\d+\.?\d*', salary_str) if len(salary_digits) == 0: return None # 将薪资转换为数值类型 salary_values = [float(digit) for digit in salary_digits] # 根据薪资单位进行转换 if '千' in salary_str or 'k' in salary_str: salary_values = [value * 1000 for value in salary_values] elif '万' in salary_str: salary_values = [value * 10000 for value in salary_values] elif '年' in salary_str: salary_values = [value / 12 for value in salary_values] # 如果薪资范围,则计算平均值 if '-' in salary_str and len(salary_values) == 2: monthly_average = sum(salary_values) / 2 return int(monthly_average) else: return int(salary_values[0]) lista = ['1.5-2.3万','5千-1万'] for a in lista: listb = convert_salary_to_monthly_average(a)
这段代码实现了将薪资字符串转换为月平均薪资的功能。具体来说,它使用了正则表达式提取薪资数字,然后根据薪资单位进行转换,最后计算出平均值。如果薪资是一个范围,则计算平均值。你给出的是一个列表,它包含两个薪资字符串。代码通过循环遍历列表的每个元素,然后调用 convert_salary_to_monthly_average 函数将薪资字符串转换为月平均薪资。最终,程序将返回一个包含两个整数的列表,这些整数分别表示两个薪资范围的月平均薪资。
@app.route('/', methods=['GET', 'POST']) def index(): if request.method == 'POST': job = request.form.get('job') results = Job.query.filter(Job.job_name.ilike(f'%{job}%')).all() if 'word_cloud' in request.form: job_tags = [tag.strip() for result in results for tag in result.job_tags.split(',')] generate_word_cloud(job_tags) return render_template('word_cloud_chart.html') elif 'salary_pie' in request.form: salary_data = {} for result in results: salary = result.salary if salary in salary_data: salary_data[salary] += 1 else: salary_data[salary] = 1 generate_salary_pie(salary_data) return render_template('salary_pie_chart.html') elif 'geo_chart' in request.form: generate_geo_chart(results) return render_template('geo_chart.html') return render_template('index.html') if __name__ == '__main__': app.run(debug=True)
这是一个使用 Flask 框架搭建的 web 应用程序。当用户访问网站首页时,会显示一个表单,用户可以在表单中输入职位名称,并选择生成词云图、薪资饼图或地理位置图中的任意一种。当用户提交表单后,程序会根据用户选择的图表类型,从数据库中查询相应的数据,然后生成对应的图表并显示给用户。其中,词云图是根据职位标签生成的,薪资饼图是根据职位薪资范围生成的,地理位置图是根据职位所在城市生成的。如果用户没有选择任何图表类型,则程序会显示网站首页。当程序运行时,会启动一个本地服务器,用户可以通过浏览器访问该服务器来使用该应用程序。
阅读全文