0

私は名前を保存したいこのリストを持っており、名前の中には名前と金額を含むアイテムリストがあります。下に大まかな概要を示します。

varx = [
    {"Name1":
        {
        "itemList":
            {
            "item1":100,
            "item2":100,
            "item3":100,
            "item4":100,
            "item5":100
            },
        "otherStuff":
            {
            "stuff1":100,
            "stuff2":100,
            "stuff3":100,
            }
        },
    "Name2":
        {
        "itemList":
            {
            "item1":100,
            "item2":100,
            "item3":100,
            "item4":100,
            "item5":100
            },
        "otherStuff":
            {
            "stuff1":100,
            "stuff2":100,
            "stuff3":100
            }}}]

「name1」から「name50」まであると仮定すると、インデックスではなく「name34」しかわかっていない場合、「name34」のアイテムリスト内にアイテムを追加するにはどうすればよいでしょうか。

4

1 に答える 1

0

ネストされた辞書を使用するだけです(つまり、リスト部分を緩めます):

data={"Name34":
        {
        "itemList":
            {
            "item1":100,
            "item2":100,
            "item3":100,
            "item4":100,
            "item5":100
            },
        "otherStuff":
            {
            "stuff1":100,
            "stuff2":100,
            "stuff3":100,
            }
        },
    "Name2":
        {
        "itemList":{'items'
        }}}

data['Name34']["itemList"]['item6']=100   

print(data['Name34']["itemList"])

版画:

{'item1': 100, 'item3': 100, 'item2': 100, 'item5': 100, 'item4': 100, 'item6': 100}

中間レベルの自動有効化が必要な場合は、次の行に沿って何かを行うことができます。

from collections import defaultdict
data = defaultdict(lambda: defaultdict(dict))

data['Name34']['IntemList']['Item1']=10
data['Name34']['IntemList']['Item6']=100

print(data['Name34']['IntemList'])

版画:

{'Item1': 10, 'Item6': 100}

これを直接jsonに変換できます:

from collections import defaultdict
import json

data = defaultdict(lambda: defaultdict(dict)) 

i=0
for k1 in ['Name{}'.format(j) for j in range(1,6)]:
    for k2 in ('Item1', 'Item2', 'Item33'):
        data[k1]['ItemList'][k2]=i
        i+=1

print(json.dumps(data)) 

版画:

{"Name5": {"ItemList": {"Item33": 14, "Item2": 13, "Item1": 12}}, 
 "Name4": {"ItemList": {"Item33": 11, "Item2": 10, "Item1": 9}}, 
 "Name3": {"ItemList": {"Item33": 8, "Item2": 7, "Item1": 6}}, 
 "Name2": {"ItemList": {"Item33": 5, "Item2": 4, "Item1": 3}}, 
 "Name1": {"ItemList": {"Item33": 2, "Item2": 1, "Item1": 0}}}
于 2013-10-31T18:09:21.807 に答える