在特定位置后向字典添加新的键\值

2024-10-01 00:32:37 发布

您现在位置:Python中文网/ 问答频道 /正文

有一本字典看起来像这样

[
    {
        "Article": 7566746,
        "Code": 100,
        "Price": "151",
        "Teg": "",
        "Specifications": {
            "key1": "value1",
            "key2": "value2",
            "key3": "value3"
        }
    }
]

在“标记”之后需要添加2行。编写了一个简短的代码,但它将​​在我的列表末尾,但在“标签”后面需要

我的代码:

with open("_test_result.json", encoding="utf-8") as file:
    result_list = json.load(file)


for i in result_list[:2]:
    i['filter'] = ''
    i['teg2'] = ''
    print(i)

Tags: 代码json字典articlecoderesultpricelist
2条回答

更新代码(感谢Kelly Bundy提出的两项细致建议):

def insert_in_dictionary(dictionary, index, keys_list, values_list):
    items = list(dictionary.items())
    items[index:index]=list(zip(keys_list,values_list))
    return dict(items)

with open("_test_result.json", encoding="utf-8") as file:
    result_list = json.load(file)


for i in range(len(result_list)):
    position = 4 # The key 'Teg' is in 4th position
    keys_list = ['filter', 'teg2']
    values_list = ['', '']
    result_list[i] = insert_in_dictionary(result_list[i],position,keys_list,values_list)
    print(result_list[i])

这可能有助于:

import ast
with open('file.json','r') as f:
    lines = f.readlines()
nlines = []
for line in lines:
    if 'Teg' in line:
        lines.append(line1)
        lines.append(line2)
dictionary = ast.literal_eval(''.join(lines))

相关问题 更多 >