【问题标题】:How to convert for calculating JSON? [duplicate]如何转换为计算 JSON? [复制]
【发布时间】:2021-01-30 05:50:12
【问题描述】:

带有 json 转储的代码:

def intro ():
RUB_BANK = connection.call('GET', '/buy-bitcoins-online/RUB/transfers-with-specific-bank/.json').json()
    amount2 = json.dumps(RUB_BANK['data']['ad_list'][0]['data']['temp_price'])
    print(amount2)
intro()

此代码有效。它给了我正确的结果:

"916000.00"
But if i try:
def intro ():
RUB_BANK = connection.call('GET', '/buy-bitcoins-online/RUB/transfers-with-specific-bank/.json').json()
    amount2 = json.dumps(RUB_BANK['data']['ad_list'][0]['data']['temp_price'])
    print(amount2 + 20000)
intro()

给我回溯

TypeError: can only concatenate str (not "int") to str

我需要加20000到916000.00怎么办?

【问题讨论】:

  • 这是因为amount2是一个字符串,而不是一个数字,所以你在做"916000.00" + 20000。您需要做的是将该字符串转换/转换为数字。

标签: python json api


【解决方案1】:

问题是此时 amount2 是一个字符串。

您只需要这样做:

amount2 = RUB_BANK['data']['ad_list'][0]['data']['temp_price']
print(float(amount2) + 20)

【讨论】:

  • 以 10 为底的 int() 的无效文字:'"915000.00"'
  • 请注意How to Answer 中关于“以前多次询问和回答”的问题的指导。
  • @Antony - 我修好了。使用 float() 而不是 int()
  • 无法将字符串转换为浮点数:'"911000.00"'
  • @Antony, using json.dumps() 是将文字引号添加到您的字符串的原因。不要那样做——你只想添加float(RUB_BANK['data']['ad_list'][0]['data']['temp_price']),而不是float(json.dumps(RUB_BANK['data']['ad_list'][0]['data']['temp_price']))
猜你喜欢
  • 1970-01-01
  • 2021-08-18
  • 2013-12-04
  • 2023-03-08
  • 2023-02-09
  • 2010-09-19
  • 2016-10-03
  • 2011-11-28
  • 2012-05-03
相关资源
最近更新 更多