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

Cre*_*ara 2 python

我正在尝试在代码中为大数字添加逗号。当我隔离代码时,它可以工作:

num = str(12354343)
print("{:,}".format(float(num)))
Run Code Online (Sandbox Code Playgroud)

但是在我的代码内部,我收到+的错误不支持的操作数类型:“ 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
Run Code Online (Sandbox Code Playgroud)

怎么了

谢谢,

Pat*_*ner 8

您的问题在其他地方:

'CTR': round(result['ctr'],2) + "%",
Run Code Online (Sandbox Code Playgroud)

round的结果是a,float并且您试图将其与'%'字符串相结合。

你不是commafy在这里浮动结果...

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

要么

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