I downloaded the IP address range file from https://ip-ranges.amazonaws.com/ip-ranges.json using cURL, which is present on Apple OS X/macOS systems and is available for Linux and many other operating systems, including Microsoft Windows - see Releases and Downloads.
$ curl -o ip-ranges.json https://ip-ranges.amazonaws.com/ip-ranges.json
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   99k  100   99k    0     0   191k      0 --:--:-- --:--:-- --:--:--  191k
$
The following Python script can be used to extract just the 
Classless Inter-Domain Routing (CIDR) address blocks, i.e.,
the ip_prefix information from the JSON data stored in
the ip-ranges.json file downloaded from the
Amazon website and display it.
#!/usr/bin/python
import json
data = json.load(open('ip-ranges.json'))
for d in data["prefixes"]:
    print d["ip_prefix"]The output from the script to display just the CIDR output would be similar to the following output (current as of 2017-02-21):
$ python ./aws_ip_cidr.py 13.32.0.0/15 13.54.0.0/15 13.56.0.0/16 13.112.0.0/14 13.124.0.0/16 23.20.0.0/14 27.0.0.0/22 34.192.0.0/12 34.208.0.0/12 34.224.0.0/12 34.248.0.0/13 35.154.0.0/16 35.156.0.0/14 35.160.0.0/13 35.176.0.0/15 43.250.192.0/24 43.250.193.0/24 46.51.128.0/18 46.51.192.0/20 46.51.216.0/21 46.51.224.0/19 46.137.0.0/17 46.137.128.0/18 46.137.192.0/19 46.137.224.0/19 50.16.0.0/15 50.18.0.0/16
The following Python script, aws_ip_ranges.py, though, can be used to extract the JSON data and put it into a more readable format showing the ip_prefix, region, and service data.
#!/usr/bin/python
# Name: aws_ip_ranges
# Written by: Jim Cameron
# Created: 2017-02-21
# Last updated: 2017-02-21
# Version: 1.0
#
# Purpose: Parse a JSON file downloaded from 
# https://ip-ranges.amazonaws.com/ip-ranges.json that contains a list of the
# IP address ranges used by Amazon Web Services (AWS). See
# http://support.moonpoint.com/languages/python/aws for example output.
import getopt, json, os.path, urllib2, sys
inputfile = ""
# Print usage information
def usage():
   print 'Usage: aws_ip_ranges [-hd] [-i inputfile]'
   print
   print '-h --help                print this message'
   print '-d --download            download the current JSON data from Amazon'
   print '-i, --input input_file   use input file'
# Download current JSON data from Amazon
def downloadJSONdata():
    url = "https://ip-ranges.amazonaws.com/ip-ranges.json"
    outfile = "ip-ranges.json"
    page = urllib2.urlopen(url)
    source=page.read()
    f=open(outfile, 'w')
    f.write(source)
    f.close()
try:
    opts, args = getopt.getopt(sys.argv[1:], "hdi:", ["help","download","input="])
except getopt.GetoptError as err:
    # print help information and exit
    print str(err)
    usage()
    sys.exit(2)
for o, a in opts:
    if o in ('-h', '--help'):
       usage()
       sys.exit()
    elif o in ('-d', '--download'):
       downloadJSONdata()
    elif o in ('-i', '--input'):
         inputfile = a
    else:
         assert False, "unhandled option"
# if the input file isn't specified assume it is a file named ip-ranges.json
# in the current directory
if not inputfile:
   inputfile = 'ip-ranges.json'
if not os.path.isfile(inputfile):
   print "Input file ", inputfile, "not found"
   print "Use", sys.argv[0], "-d or --download to download ip-ranges.json"
   sys.exit(2)
else: 
    data = json.load(open(inputfile))
# Print the data left-justified in 3 columns of 20 characters in length
print "IP Prefix".ljust(20) + "Region".ljust(20) + "Service".ljust(20)
for d in data["prefixes"]:
    print d["ip_prefix"].ljust(20) + d["region"].ljust(20) + d["service"].ljust(20)
The script can be run with the command python ../aws_ip_ranges.py
or you can make the script itself executable by changing the 
file permissions using the command 
chmod 755 aws_ip_ranges.py, which will allow it to be read and
executed by any account on the system, but grants write access only to the
file owner. The script can then be run with ./aws_ip_ranges.py.
If run with no options the script will assume that the ip-ranges.json file is in the current working directory and use that file. If it isn't there it will print the message below:
$ python ../aws_ip_ranges.py Input file ip-ranges.json not found Use ../aws_ip_ranges.py -d or --download to download ip-ranges.json $
You can specify an alternate location for the JSON input file with
-i inputfile or --input inputfile where
inputfile is the name or path/name for the file containing the Amazon
JSON data.
If the script is run with the -h or --help
options, it will display the usage information below:
$ python ./aws_ip_ranges.py -h Usage: aws_ip_ranges [-hd] [-i inputfile] -h --help print this message -d --download download the current JSON data from Amazon -i, --input input_file use input file $
If the -d or --download option is used, the
script will download the current JSON data file from Amazon and use it.
The output data (current as of February 21, 2017) will look like the following:
IP Prefix Region Service 13.32.0.0/15 GLOBAL AMAZON 13.54.0.0/15 ap-southeast-2 AMAZON 13.56.0.0/16 us-west-1 AMAZON 13.112.0.0/14 ap-northeast-1 AMAZON 13.124.0.0/16 ap-northeast-2 AMAZON 23.20.0.0/14 us-east-1 AMAZON 27.0.0.0/22 ap-northeast-1 AMAZON 34.192.0.0/12 us-east-1 AMAZON 34.208.0.0/12 us-west-2 AMAZON 34.224.0.0/12 us-east-1 AMAZON 34.248.0.0/13 eu-west-1 AMAZON 35.154.0.0/16 ap-south-1 AMAZON 35.156.0.0/14 eu-central-1 AMAZON 35.160.0.0/13 us-west-2 AMAZON 35.176.0.0/15 eu-west-2 AMAZON 43.250.192.0/24 ap-southeast-1 AMAZON 43.250.193.0/24 ap-southeast-1 AMAZON 46.51.128.0/18 eu-west-1 AMAZON 46.51.192.0/20 eu-west-1 AMAZON 46.51.216.0/21 ap-southeast-1 AMAZON 46.51.224.0/19 ap-northeast-1 AMAZON 46.137.0.0/17 eu-west-1 AMAZON 46.137.128.0/18 eu-west-1 AMAZON 46.137.192.0/19 ap-southeast-1 AMAZON 46.137.224.0/19 ap-southeast-1 AMAZON 50.16.0.0/15 us-east-1 AMAZON 50.18.0.0/16 us-west-1 AMAZON 50.19.0.0/16 us-east-1 AMAZON 50.112.0.0/16 us-west-2 AMAZON 52.0.0.0/15 us-east-1 AMAZON <text snipped> 54.240.128.0/18 GLOBAL CLOUDFRONT 204.246.164.0/22 GLOBAL CLOUDFRONT 204.246.168.0/22 GLOBAL CLOUDFRONT 204.246.174.0/23 GLOBAL CLOUDFRONT 204.246.176.0/20 GLOBAL CLOUDFRONT 205.251.192.0/19 GLOBAL CLOUDFRONT 205.251.249.0/24 GLOBAL CLOUDFRONT 205.251.250.0/23 GLOBAL CLOUDFRONT 205.251.252.0/23 GLOBAL CLOUDFRONT 205.251.254.0/24 GLOBAL CLOUDFRONT 216.137.32.0/19 GLOBAL CLOUDFRONT