python - 错误的 IF 语句输出
问题描述
我遍历了一个 API 返回的列表并抓取了 1.longName 2.RegularPrice 3.MarketCap 我已经完成但我希望市值返回“十亿美元”,如果它大于或等于 10 个数字,如果它也返回百万美元不到10位数。
import requests
import pprint
import json
url = "https://yahoo-finance15.p.rapidapi.com/api/yahoo/ga/topgainers"
querystring = {"start":"0"}
headers = {
'x-rapidapi-host': "yahoo-finance15.p.rapidapi.com",
'x-rapidapi-key': "9efd0f3e52mshd859f5daf34a429p11cb2ajsn2b0e421d681e"
}
response = requests.request("GET", url, headers=headers, params=querystring)
data = response.json()
#print(response.text)
def new_stock(data):
new_market = []
for item in data ['quotes']:
new_name = item.get ('longName')
new_price = item.get ('regularMarketPrice')
res_price = (f'{new_price} Dollars')
cap =item.get('marketCap')
cap2 = str(cap)
for i in cap2:
if i == 1000000000:
return(f'{cap2} Billion Dollars')
else:
return(f'{cap2} million Dollars')
return cap2
new_market.append((new_name, res_price, cap2))
return new_market
value = new_stock(data)
dict = {i: value[i] for i in range(0, len(value))}
print(dict)
所以我想要一本像
{Wienerberger AG', '4.38 Dollars', '2607606784 Billion Dollars} or {EPR Properties', '31.62 Dollars', '246636006 million Dollars}
解决方案
我在您的代码中修改了两件事:
- 价值压缩
- 返回函数
代码:
import requests
import pprint
import json
url = "https://yahoo-finance15.p.rapidapi.com/api/yahoo/ga/topgainers"
querystring = {"start":"0"}
headers = {'x-rapidapi-host': "yahoo-finance15.p.rapidapi.com",'x-rapidapi-key': "9efd0f3e52mshd859f5daf34a429p11cb2ajsn2b0e421d681e"}
response = requests.request("GET", url, headers=headers, params=querystring)
data = response.json()
def new_stock(data):
new_market = []
for item in data ['quotes']:
new_name = item.get ('longName')
new_price = item.get ('regularMarketPrice')
res_price = (f'{new_price} Dollars')
cap =item.get('marketCap')
cap2 = int(cap)
if cap2>=1000000000:
cap2 = f'{cap2} Billion Dollars'
else:
cap2 = f'{cap2} million Dollars'
new_market.append((new_name, res_price, cap2))
return new_market
value = new_stock(data)
dict = {i: value[i] for i in range(0, len(value))}
print(dict)
输出:
{0: ('Cimpress plc', '78.2325 Dollars', '2050129536 Billion Dollars'), 1: ('CaixaBank, S.A.', '0.636 Dollars', '12386608128 Billion Dollars'), 2: ('Park Hotels & Resorts Inc.', '10.7 Dollars', '2567807232 Billion Dollars'), 3: ('Norwegian Cruise Line Holdings Ltd.', '15.705 Dollars', '3348353280 Billion Dollars'), 4: ('Sabre Corporation', '7.42 Dollars', '2031269504 Billion Dollars'), 5: ('AerCap Holdings N.V.', '28.36 Dollars', '3731694080 Billion Dollars'), 6: ('Spirit AeroSystems Holdings, Inc.', '23.94 Dollars', '2508385280 Billion Dollars'), 7: ('Saia, Inc.', '99 Dollars', '2580266752 Billion Dollars'), 8: ('Ryman Hospitality Properties, Inc.', '37.56 Dollars', '2064669568 Billion Dollars'), 9: ('DNB ASA', '12.06 Dollars', '18676477952 Billion Dollars'), 10: ('Alliance Data Systems Corporation', '54.7384 Dollars', '2607025664 Billion Dollars'), 11: ('OneMain Holdings, Inc.', '26.38 Dollars', '3543097600 Billion Dollars'), 12: ('Fox Factory Holding Corp.', '56.2175 Dollars', '2170147328 Billion Dollars'), 13: ('CarGurus, Inc.', '23.31 Dollars', '2625498368 Billion Dollars'), 14: ('Builders FirstSource, Inc.', '19.81 Dollars', '2300535296 Billion Dollars'), 15: ('Air Lease Corporation', '26.33 Dollars', '2992009472 Billion Dollars'), 16: ('Lattice Semiconductor Corporation', '22.38 Dollars', '3008431104 Billion Dollars'), 17: ('Discover Financial Services', '45.66 Dollars', '13982827520 Billion Dollars'), 18: ('Penn National Gaming, Inc.', '18.14 Dollars', '2122452480 Billion Dollars'), 19: ('Companhia Siderurgica Nacional', '1.56 Dollars', '2037796608 Billion Dollars'), 20: ("Aaron's, Inc.", '31.78 Dollars', '2121140224 Billion Dollars'), 21: ('Paycom Software, Inc.', '269.235 Dollars', '15839551488 Billion Dollars'), 22: ('Nexstar Media Group, Inc.', '76.9 Dollars', '3526603264 Billion Dollars'), 23: ('Blackstone Mortgage Trust, Inc.', '23.8 Dollars', '3221472768 Billion Dollars'), 24: ('Centrica plc', '2.014 Dollars', '2800688640 Billion Dollars')}
推荐阅读
- ruby-on-rails - 如何修复“未定义的方法 total_pages”
- c# - 并行读取 Azure blob 文件的最快方法
- excel - 如何从另一个excel表中的给定引用中减去值
- python-3.x - 有什么方法可以改善笛卡尔虹膜图像中瞳孔区域的轮廓检测?
- python-3.x - 在 Python 中将多个文本文件读取到 2D numpy 数组
- reactjs - 如何使用 Context API 访问状态
- laravel - 为什么 Route::resource() 在删除/更新控制器中某些方法的名称后不更新路由
- java - 如何使用线程池在非 GUI 线程中运行任务
- node.js - 使用套接字连接到节点服务器时出错
- python - 如何修复'用户输入(“用户:”)语法错误'