|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- import requests
- crypto = []
- def check(a):#搞一个函数,接入交易所的api,获取BTC比特币的实时价格数据,由于爬取的数据是列表里嵌套了字典,于是就迭代取出想要的数据放进列表里,然后返回值是函数实参的最新价格
- url = requests.get('https://api.binance.com/api/v3/ticker/price').json()
- for i in url:
- for k in i.values():
- crypto.append(k)
- a1 = crypto[crypto.index(a)+1]
-
- return a1
- while 1<2:#由于比特币BTC的价格是一直处于变化的,我就想搞个循环,让他每次都把获取的价格打印出来,但是当我运行这代码以后,发现打印出来的价格一直是不变的,好像程序就只读取了一次api拿到价格后就一直输出给我,不再重复读取了。不知道哪里出问题了,求赐教
- x = check('BTCUSDT')#运行代码前要挂梯子.
- print(x)
-
复制代码
运行代码以后,就如图所示,价格一直不变,可实时的BTC价格每秒钟都在发生变化。。我感觉我的代码只读取了一次实时价格后就一直给我循环返回这个值,可我代码循环里面每次都会调用函数,照理说每调用一次 他就爬取一次最新价格才对啊。。想不通
因为你的 crypto 每次都是用的同一个,然后没有清掉之前的数据,而 index 是数到第一个,也就是之前的,
用 crypto.clear() 把列表的数据清掉
- import requests
- crypto = []
- def check(a):#搞一个函数,接入交易所的api,获取BTC比特币的实时价格数据,由于爬取的数据是列表里嵌套了字典,于是就迭代取出想要的数据放进列表里,然后返回值是函数实参的最新价格
- url = requests.get('https://api.binance.com/api/v3/ticker/price').json()
- for i in url:
- for k in i.values():
- crypto.append(k)
- a1 = crypto[crypto.index(a)+1]
- crypto.clear() # 加了这行
- return a1
- while 1<2:#由于比特币BTC的价格是一直处于变化的,我就想搞个循环,让他每次都把获取的价格打印出来,但是当我运行这代码以后,发现打印出来的价格一直是不变的,好像程序就只读取了一次api拿到价格后就一直输出给我,不再重复读取了。不知道哪里出问题了,求赐教
- x = check('BTCUSDT')#运行代码前要挂梯子.
- print(x)
-
复制代码
|
-
|