Python3:+不支持的操作数类型:“ float”和“ str”

时间:2019-05-14 16:26:54

标签: python

我正在尝试在我的代码中给大数字添加逗号。当我隔离代码时,它会起作用:

num = str(12354343)
print("{:,}".format(float(num)))

但是在我的代码中,我收到+的错误不支持的操作数类型:'float'和'str'。

def commafy(x):
    x = "{:,}".format(float(x))
    return x

i=1

d = resp.json()
for result in d['results']:
    #print(result['campaign_name'])
    data[i] = {'Source': 'Taboola', 'Campaign': result['campaign_name'], 'Impr.': commafy(result['impressions']), 'CTR': round(result['ctr'],2) + "%", 'Spent': result['spent']}
    i+=1

这是怎么了?

谢谢

1 个答案:

答案 0 :(得分:6)

您的问题在其他地方:

'CTR': round(result['ctr'],2) + "%",

round的结果是一个float,而您尝试将其与字符串形式的'%'结合起来。

您不是commafyìng这里的浮点结果...

'CTR': f"{round(result['ctr'],2)}%", # should work for 3.6+ (string interpolation syntax)

'CTR': "{}%".format(round(result['ctr'],2)), # should work for below 3.6