首页 > 解决方案 > 如何比较python中的复杂字符串?

问题描述

我抓取了一个有土耳其月份的网站,并编写了将其转换为公历月份的代码;但它不起作用。如何比较这样的复杂字符串?

if month=="Kasım":
    #tested
    #return "November"
    return 11
if month=="Aralık":
    #tested
    return 12
    #return "December"
if month=="Ekim":
    return 10
    #return "October"
if month=="Eylül":
    return 9
    #return "September"
if month=="Ağustos":
    return 8
    #return "August"
if month=="Temmuz":
    return 7
    #return "July"
if month=="haziran":
    return 6
    #return "June"
if month=="mayıs":
    return 5
    #return "May"
if month=="nisan":
    return 4
    #return "April"
if month=="mart":
    return 3
    #return "March"
if month=="şubat":
    return 2
    #return "February"
if month=="Ocak":
    return 1
    #return "January"

我从抓取的站点复制了字符串,但我的转换器总是返回if函数中第一个的结果;例如:它总是返回 11。还有其他方法可以比较它们吗?

标签: python-3.xbeautifulsoup

解决方案


如果您将其设为字典,则可以直接访问它。

turkish_months = {
    "Kasım": 11, # "November"
    "Aralık": 12, # "December"
    "Ekim": 10, # "October"
    "Eylül": 9, # "September"
    "Ağustos": 8, # August"
    "Temmuz": 7, # "July"
    "haziran": 6, # "June"
    "mayıs": 5, # "May"
    "nisan": 4, # "April"
    "mart": 3, # "March"
    "şubat": 2, # "February"
    "Ocak": 1 # "January"
}

然后访问它:

current_month = "Ekim"
turkish_months[current_month]

如果您的代码始终返回 11:我怀疑问题不在于您的转换,而在于您尝试转换的数据。您很可能一次又一次地尝试转换相同的数据,但认为它不一样。在尝试转换之前尝试打印进入转换器的数据,以确保它正常工作,然后删除打印件。


推荐阅读