python - Python JSON 数据横向
问题描述
想根据用户输入更新几个 json 值。
Json 文件 = data.json 和内容是
{"store_id": 23456,
"store_manager": "sam",
"store_items":[
{
"name":"item_1",
"available":"yes",
"category":"living",
"price":2
},
{
"name":"item_2",
"available":"yes",
"category":"living",
"price":5
},
{
"name":"item_3",
"available":"yes",
"category":"kitchen",
"price":12
},
{
"name":"item_4",
"available":"yes",
"category":"kitchen",
"price":18
},
{
"name":"item_5",
"available":"yes",
"category":"bedroom",
"price":8
},
{
"name":"item_6",
"available":"yes",
"category":"bedroom",
"price":23
},
{
"name":"item_7",
"available":"yes",
"category":"bedroom",
"price":28
},
{
"name":"item_8",
"available":"yes",
"category":"kitchen",
"price":34
},
{
"name":"item_9",
"available":"yes",
"category":"living",
"price":24
},
{
"name":"item_10",
"available":"yes",
"category":"bedroom",
"price":""
},
{
"name":"item_11",
"available":"yes",
"category":"kitchen",
"price":""
},
{
"name":"item_12",
"available":"yes",
"category":"living",
"price":""
},
{
"name":"item_13",
"available":"yes",
"category":"living",
"price":""
},
{
"name":"item_14",
"available":"yes",
"category":"living",
"price":""
},
{
"name":"item_15",
"available":"yes",
"category":"bedroom",
"price":""
},
{
"name":"item_16",
"available":"yes",
"category":"bedroom",
"price":""
},
{
"name":"item_17",
"available":"yes",
"category":"bedroom",
"price":""
},
{
"name":"item_18",
"available":"yes",
"category":"kitchen",
"price":""
}],
"parking":"available",
"open_on_holidays": "false"
}
库存分发文件是:
stock_spread = {'group_1' : ['item_1',
'item_2',
'item_3',
'item_4',
'item_5',
'item_6',
'item_7'],
'group_2' : ['item_8',
'item_9',
'item_10',
'item_11',
'item_12',
'item_13',
'item_14'],
'group_3' : ['item_15',
'item_16',
'item_17',
'item_18']}
我想将选定输入的值“可用”更新为“否”
如果选择 group_1 :过滤具有项目 1 到 7 的所有值:在 7 个值中仅将可用性更新为“否”知道类别在哪里是“卧室”
如果选择 group_2:过滤所有包含项目 8 到 14 的值:在 6 个值中,仅将可用性更新为“否”知道类别是“卧室”+“厨房”的位置
现在我至少尝试过滤
import sys
from stock_distribution import *
required_items_based_upon_group = stock_spread['group_1']
print(required_items_based_upon_group)
if 'group_1' in required_items_based_upon_group:
category_list = "kitchen"
elif 'group_2' in required_items_based_upon_group:
category_list = "living" + "bedroom"
else:
print("Couldn't able to find")
with open ('data.json', 'r') as f:
my_json_data = json.load(f)
for elem in my_json_data['store_items']:
if elem['name'] in (required_items_based_upon_group) and elem['category'] in (category_list):
print(elem["name"],elem["category"] ,elem["available"])