官术网_书友最值得收藏!

  • Learning Python for Forensics
  • Preston Miller Chapin Bryce
  • 255字
  • 2021-08-20 10:17:14

Understanding the get_address() function

This is an integral, though a potentially error-prone, component of our script because it relies on the user correctly supplying data. The code itself is just a simple data request. However, when working with user supplied arguments, it isn't safe to assume that the user gave the script the correct data. Considering the length and somewhat random-looking sequence of a Bitcoin address, it's entirely possible that the user might supply an incorrect address. We'll catch any instance of URLError from the urllib.error module to handle a malformed input. URLError isn't part of the built-in exceptions we've talked about before and is a custom exception defined by the urrlib module:

053 def get_address(address):
054 """
055 The get_address function uses the blockchain.info Data API
056 to pull pull down account information and transactions for
057 address of interest
058 :param address: The Bitcoin Address to lookup
059 :return: The response of the url request
060 """

On line 62, we insert the user-supplied address into the blockchain.info API call using the string format() method. Then, we try to return the data requested using the urllib.request.urlopen() function. If the user supplies an invalid address or if the user doesn't have an internet connection, URLError will be caught. Once the error has been caught, we notify the user and exit the script, calling sys.exit(1) on line 67:

061     url = 'https://blockchain.info/address/{}?format=json'
062 formatted_url = url.format(address)
063 try:
064 return urllib.request.urlopen(formatted_url)
065 except urllib.error.URLError:
066 print('Received URL Error for {}'.format(formatted_url))
067 sys.exit(1)
主站蜘蛛池模板: 醴陵市| 大荔县| 龙川县| 漳州市| 茂名市| 富平县| 大荔县| 松原市| 和田市| 罗田县| 文化| 宁远县| 沿河| 韶关市| 六枝特区| 大石桥市| 会同县| 紫金县| 商洛市| 无为县| 怀集县| 鄂托克旗| 响水县| 江西省| 奈曼旗| 太康县| 木里| 扶沟县| 金塔县| 阳新县| 青龙| 突泉县| 石屏县| 蕲春县| 屏东市| 葫芦岛市| 乐陵市| 济南市| 佛学| 兴城市| 彭泽县|