0

Everything with my script runs fine until I try to run it through a for loop. Specifically, when I attempt to index a specific array within the object. Before I get to the The script is intended to grab the delivery date for each tracking number in my list.

This is my script:

import requests
import json

TrackList = ['1Z3X756E0310496105','1ZX0373R0303581450','1ZX0373R0103574417']
url = 'https://onlinetools.ups.com/rest/Track'
para1 = '...beginning of JSON request string...'
para2 = '...end of JSON request string...'

for TrackNum in TrackList:
    parameters = para1+TrackNum+para2
    resp = requests.post(url = url, data = parameters, verify=False)
    data = json.loads(resp.text)
    DelDate = data['TrackResponse']['Shipment']['Package'][0]['Activity'][0]['Date']
    print(DelDate)

JSON API Response (if needed):

{
    "TrackResponse": {
        "Response": {
            "ResponseStatus": {
                "Code": "1",
                "Description": "Success"
            },
            "TransactionReference": {
                "CustomerContext": "Analytics Inquiry"
            }
        },
        "Shipment": {
            "InquiryNumber": {
                "Code": "01",
                "Description": "ShipmentIdentificationNumber",
                "Value": "1ZX0373R0103574417"
            },
            "Package": {
                "Activity": [
                    {
                        "ActivityLocation": {
                            "Address": {
                                "City": "OKLAHOMA CITY",
                                "CountryCode": "US",
                                "PostalCode": "73128",
                                "StateProvinceCode": "OK"
                            },
                            "Code": "M3",
                            "Description": "Front Desk",
                            "SignedForByName": "CUMMINGS"
                        },
                        "Date": "20190520",
                        "Status": {
                            "Code": "9E",
                            "Description": "Delivered",
                            "Type": "D"
                        },
                        "Time": "091513"
                    },
                    {
                        "ActivityLocation": {
                            "Address": {
                                "City": "Oklahoma City",
                                "CountryCode": "US",
                                "StateProvinceCode": "OK"
                            },
                            "Description": "Front Desk"
                        },
                        "Date": "20190520",
                        "Status": {
                            "Code": "OT",
                            "Description": "Out For Delivery Today",
                            "Type": "I"
                        },
                        "Time": "085943"
                    },
                    {
                        "ActivityLocation": {
                            "Address": {
                                "City": "Oklahoma City",
                                "CountryCode": "US",
                                "StateProvinceCode": "OK"
                            },
                            "Description": "Front Desk"
                        },
                        "Date": "20190520",
                        "Status": {
                            "Code": "DS",
                            "Description": "Destination Scan",
                            "Type": "I"
                        },
                        "Time": "011819"
                    },
                    {
                        "ActivityLocation": {
                            "Address": {
                                "City": "Oklahoma City",
                                "CountryCode": "US",
                                "StateProvinceCode": "OK"
                            },
                            "Description": "Front Desk"
                        },
                        "Date": "20190519",
                        "Status": {
                            "Code": "AR",
                            "Description": "Arrival Scan",
                            "Type": "I"
                        },
                        "Time": "235100"
                    },
                    {
                        "ActivityLocation": {
                            "Address": {
                                "City": "DFW Airport",
                                "CountryCode": "US",
                                "StateProvinceCode": "TX"
                            },
                            "Description": "Front Desk"
                        },
                        "Date": "20190519",
                        "Status": {
                            "Code": "DP",
                            "Description": "Departure Scan",
                            "Type": "I"
                        },
                        "Time": "195500"
                    },
                    {
                        "ActivityLocation": {
                            "Address": {
                                "City": "DFW Airport",
                                "CountryCode": "US",
                                "StateProvinceCode": "TX"
                            },
                            "Description": "Front Desk"
                        },
                        "Date": "20190517",
                        "Status": {
                            "Code": "OR",
                            "Description": "Origin Scan",
                            "Type": "I"
                        },
                        "Time": "192938"
                    },
                    {
                        "ActivityLocation": {
                            "Address": {
                                "CountryCode": "US"
                            },
                            "Description": "Front Desk"
                        },
                        "Date": "20190517",
                        "Status": {
                            "Code": "MP",
                            "Description": "Order Processed: Ready for UPS",
                            "Type": "M"
                        },
                        "Time": "184621"
                    }
                ],
                "PackageWeight": {
                    "UnitOfMeasurement": {
                        "Code": "LBS"
                    },
                    "Weight": "2.00"
                },
                "ReferenceNumber": [
                    {
                        "Code": "01",
                        "Value": "8472745558"
                    },
                    {
                        "Code": "01",
                        "Value": "5637807:1007379402:BN81-17077A:1"
                    },
                    {
                        "Code": "01",
                        "Value": "5637807"
                    }
                ],
                "TrackingNumber": "1ZX0373R0103574417"
            },
            "PickupDate": "20190517",
            "Service": {
                "Code": "001",
                "Description": "UPS Next Day Air"
            },
            "ShipmentAddress": [
                {
                    "Address": {
                        "AddressLine": "S 600 ROYAL LN",
                        "City": "COPPELL",
                        "CountryCode": "US",
                        "PostalCode": "750193827",
                        "StateProvinceCode": "TX"
                    },
                    "Type": {
                        "Code": "01",
                        "Description": "Shipper Address"
                    }
                },
                {
                    "Address": {
                        "City": "OKLAHOMA CITY",
                        "CountryCode": "US",
                        "PostalCode": "73128",
                        "StateProvinceCode": "OK"
                    },
                    "Type": {
                        "Code": "02",
                        "Description": "ShipTo Address"
                    }
                }
            ],
            "ShipmentWeight": {
                "UnitOfMeasurement": {
                    "Code": "LBS"
                },
                "Weight": "2.00"
            },
            "ShipperNumber": "X0373R"
        }
    }
}

Below is the error I receive:

Traceback (most recent call last):
  File "/Users/***/Library/Preferences/PyCharmCE2019.1/scratches/UPS_API.py", line 15, in <module>
    DelDate = data['TrackResponse']['Shipment']['Package'][0]['Activity'][0]['Date']
KeyError: 0
1
  • data['TrackResponse']['Shipment']['Package']['Activity'][0]['Date'] gives '20190520'. Is that what you want? Commented Jun 5, 2019 at 4:16

2 Answers 2

4

You're trying to index "Package" at index 0, but it's an object not an array. So you should be accessing ['Package']['Activity']

Sign up to request clarification or add additional context in comments.

Comments

0

just take away the [0] because there is no [1] or [2]

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.