<p>这将在列表中迭代一次,但<code>stock_data</code>除外</p>
<pre class="lang-py prettyprint-override"><code># convert the location_data into a dict for easy lookup
locations = dict()
for location in location_data:
locations[location["locationId"]] = location["locationName"]
# convert the stock_data into a dict for easy lookup
stocks = dict()
for stock in stock_data:
if stock["productId"] in stocks:
stocks[stock["productId"]]["stockamounts"][stock["locationId"]] = stock["stock"]
stocks[stock["productId"]]["total"] += stock["stock"]
else:
stocks[stock["productId"]] = {
"total": stock["stock"],
"stockamounts": {stock["locationId"]: stock["stock"]},
}
# iterate through the products
result = list()
for product in product_data:
# set the simple variables
item = {
"productName": product["productName"],
"stock": {
"total": stocks[product["productId"]]["total"],
"detail": []}
}
# populate the detail list
for key, value in stocks[product["productId"]]["stockamounts"].items():
item["stock"]["detail"].append({
"locationName": locations[key],
"stock": value
})
result.append(item)
</code></pre>