API Help
Bradley Cooper
brad at midwestaftermarket.com
Thu Jun 15 08:04:23 EDT 2017
On Wednesday, June 14, 2017 at 6:10:55 PM UTC-4, Andre Müller wrote:
> Am 14.06.2017 um 22:33 schrieb Bradley Cooper:
> > I am working with an API and I get a return response in this format.
> >
> >
> > [{"itemNumber":"75-5044","inventory":[{"warehouseCode":"UT-1-US","quantityAvailable":0.0000000000000},{"warehouseCode":"KY-1-US","quantityAvailable":0.0000000000000},{"warehouseCode":"TX-1-US","quantityAvailable":14.0000000000000},{"warehouseCode":"CA-1-US","quantityAvailable":4.0000000000000},{"warehouseCode":"AB-1-CA","quantityAvailable":1.0000000000000},{"warehouseCode":"WA-1-US","quantityAvailable":0.0000000000000},{"warehouseCode":"PO-1-CA","quantityAvailable":0.0000000000000}]}]
> >
> > What is the best way to read through the data?
> >
>
> Your data looks like Json.
> First use the _json_ module to convert the _string_ into a _Python data
> structure_.
> Then you can iterate over it. My example is a nested loop. Maybe
> you've more than one element inside the list.
>
>
> import json
>
> # the string looks like json
> JSON_DATA = """[
> {"itemNumber":"75-5044","inventory": [
> {"warehouseCode":"UT-1-US","quantityAvailable":0.0000000000000},
> {"warehouseCode":"KY-1-US","quantityAvailable":0.0000000000000},
> {"warehouseCode":"TX-1-US","quantityAvailable":14.0000000000000},
> {"warehouseCode":"CA-1-US","quantityAvailable":4.0000000000000},
> {"warehouseCode":"AB-1-CA","quantityAvailable":1.0000000000000},
> {"warehouseCode":"WA-1-US","quantityAvailable":0.0000000000000},
> {"warehouseCode":"PO-1-CA","quantityAvailable":0.0000000000000}
> ]
> }
> ]"""
>
>
> # converting the json string to a Python data structure
> inventory = json.loads(JSON_DATA)
>
> # representation in Python
> #[{'inventory': [{'quantityAvailable': 0.0, 'warehouseCode': 'UT-1-US'},
> #{'quantityAvailable': 0.0, 'warehouseCode': 'KY-1-US'},
> #{'quantityAvailable': 14.0, 'warehouseCode': 'TX-1-US'},
> #{'quantityAvailable': 4.0, 'warehouseCode': 'CA-1-US'},
> #{'quantityAvailable': 1.0, 'warehouseCode': 'AB-1-CA'},
> #{'quantityAvailable': 0.0, 'warehouseCode': 'WA-1-US'},
> #{'quantityAvailable': 0.0, 'warehouseCode': 'PO-1-CA'}],
> #'itemNumber': '75-5044'}]
>
>
> # the interesting part
> for items in inventory:
> # get the elements in from the list
> # the elements are dicts, in this case exactly one dict
> print('itemNumber:', i['itemNumber'])
> # nested loop iterating over the values of the key 'inventory'
> for item in items['inventory']:
> # the value is dict
> code, qty = item['warehouseCode'],item['quantityAvailable']
> print('warehouseCode:', code, 'quantityAvailable', qty)
>
>
> # Output
> #itemNumber: 75-5044
> #warehouseCode: UT-1-US quantityAvailable 0.0
> #warehouseCode: KY-1-US quantityAvailable 0.0
> #warehouseCode: TX-1-US quantityAvailable 14.0
> #warehouseCode: CA-1-US quantityAvailable 4.0
> #warehouseCode: AB-1-CA quantityAvailable 1.0
> #warehouseCode: WA-1-US quantityAvailable 0.0
> #warehouseCode: PO-1-CA quantityAvailable 0.0
>
>
> Greetings
> Andre
Thanks Andre, that works I just needed to convert my return to a string str(DATA)
More information about the Python-list
mailing list