Json webscraping的String Manipulation

时间:2018-03-26 01:59:08

标签: python python-3.x web-scraping

我正在尝试抓取一个网站,并获得通过requestsjson导入获得的非常长的矩阵所需的所有数据。

我在获取任何输出时遇到问题。 是因为requests.get()中的两个字符串合并了吗?

以下是有问题的部分,所有使用的东西都是在代码的开头声明的。

balance=[]

for q in range(len(DepositMatrix)):
    address= requests.get('https://ethplorer.io/service/service.php?data=' + str(DepositMatrix[q][0]))
    data4 = address.json()
    TokenBalances = data4['balances'] #returns a dictionary
    balance.append(TokenBalances)

print(balance) 

DepositMatrix示例 - 包含4个元素的列表列表[[string , float, int, int]]

[['0x2b5634c42055806a59e9107ed44d43c426e58258', 488040277.1535826, 660, 7103], 
 ['0x05ee546c1a62f90d7acbffd6d846c9c54c7cf94c', 376515313.83254075, 2069, 12705]]

我认为错误在这部分:

requests.get('https://ethplorer.io/service/service.php?data=' + str(DepositMatrix[q][0]))

这种改变也没有帮助:

requests.get('https://ethplorer.io/service/service.php?data=' + DepositMatrix[q][0])

1 个答案:

答案 0 :(得分:1)

就像我在评论中所说,我尝试了你的代码,它对我有用。但我想强调一些可以帮助您的代码更清晰的事情:

import requests
import pprint

DepositMatrix = [['0x2b5634c42055806a59e9107ed44d43c426e58258', 488040277.1535826, 660, 7103], 
 ['0x05ee546c1a62f90d7acbffd6d846c9c54c7cf94c', 376515313.83254075, 2069, 12705]]

balance=[]

for deposit in DepositMatrix:
    address = requests.get('https://ethplorer.io/service/service.php?data=' + deposit[0])
    data4 = address.json()
    TokenBalances = data4['balances'] #returns a dictionary
    balance.append(TokenBalances)

pprint.pprint(balance)
  • 对于您的循环,不是创建列表长度的范围(q),而是使用此q从列表中获取信息,它更简单到直接获取每个元素(for deposit in DepositMatrix:
  • 我已使用pprint模块来简化数据的可视化。