首页 > 解决方案 > 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"])

标签: pythonjson

解决方案


推荐阅读