类型错误:不支持 / 的操作数类型:'str' 和 'str'(AWS lambda)

时间:2021-01-21 01:44:44

标签: python aws-lambda

我正在 AWS lambda 中编写一个函数来提取西班牙一些城市的每月失业数据。 我在本地尝试的代码完美无缺,但是当我在 lambda 中执行时,我得到了那个错误。唯一的区别是,在本地我使用 Python 3.7,而在 lambda 中我使用 Python 3.6(我必须这样做以使其与我包含在开发包中的某些模块兼容。 经过一番研究,似乎错误来自于混合运算符和字符串,但我想不出另一种方式来表达我的需要,我强调在本地它可以完美运行。

具体来说,给出这个错误的代码行是:

data5.to_csv("s3://xxx/xxx/ '+ str(i).split("/")[-1] + str(fecha) + '.csv'")

我必须这样表达,因为我需要你用城市名称和最后更新数据的日期保存每个csv。理解我为什么用这种方式表达的完整代码是这个。

Row_list=[]
    MUNICIPIOS = ['https://datosmacro.expansion.com/paro/espana/municipios/andalucia/cadiz/cadiz', 'https://datosmacro.expansion.com/paro/espana/municipios/la-rioja/la-rioja/agoncillo', 'https://datosmacro.expansion.com/paro/espana/municipios/castilla-leon/leon/bembibre']
    for i in MUNICIPIOS:
        data5 = pd.read_html(i, header = 0, decimal=',', thousands='.')
        data5 = data5[0]
        data5 = data5[["Fecha", "Tasa de Paro Registrado", "Nº de parados registrados", "Población"]]
        for index, rows in data5.iterrows():
            my_list =[rows.Fecha] 
            Row_list.append(my_list)
        fecha=[Row_list[0]]
        data5.to_csv("s3://xxx/xxx/ '+ str(i).split("/")[-1] + str(fecha) + '.csv'")

你能想出办法解决吗?我已经有一段时间无法修复它。 预先非常感谢您!

1 个答案:

答案 0 :(得分:2)

您的问题是引号不匹配。将出现错误的代码行替换为:

data5.to_csv("s3://xxx/xxx/ "+ str(i).split("/")[-1] + str(fecha) + ".csv")

使用与打开字符串相同类型的引号关闭字符串很重要。