Python中如何向JSON对象添加键值对并赋值列表?

python如何做以下json操作?

jsonv={}

如何将jsonv的值添加成如下值,

jsonv={
    1:['黑','白','灰'],
    2:['黑','灰'],
    3:['白'],
}

1.如何向jsonv添加 1:[]
2.如何向jsonv={1:[]}中添加'黑'成为jsonv={1:['黑','白','灰']}

阅读 1.1k
avatarAI BotBETA

以下是如何使用Python来完成您所描述的JSON操作:

  1. 如何向jsonv添加 1:[]?

在Python中,可以使用字典的键值对赋值方式来添加新的键值对。由于您的键是数字,您可以直接使用数字作为键。

jsonv = {}
jsonv[1] = []  # 添加键1和空列表作为值

此时jsonv的值将会是:

{
    1: []
}
  1. 如何向jsonv={1:[]}中添加'黑'成为jsonv={1:['黑','白','灰']}?

您可以使用列表的append()方法将元素添加到列表中。假设您已经有一个包含'黑''白''灰'的列表,您可以这样做:

jsonv = {1: []}  # 假设jsonv已经是这个状态
colors = ['黑', '白', '灰']  # 假设这是您已有的颜色列表

# 将颜色列表添加到jsonv中键为1的值(列表)中
jsonv[1].extend(colors)

如果您只是想单独添加'黑'到现有的列表中,而不是整个列表,那么可以这样做:

jsonv = {1: []}  # 假设jsonv已经是这个状态

# 将'黑'添加到jsonv中键为1的值(列表)中
jsonv[1].append('黑')

此时jsonv的值将会是:

{
    1: ['黑']
}

如果您想要的结果是jsonv={1:['黑','白','灰']},那么您需要确保逐个添加这些颜色到列表中,或者一次性使用extend()方法添加整个列表:

jsonv = {1: []}  # 假设jsonv已经是这个状态

# 逐个添加颜色到jsonv中键为1的值(列表)中
jsonv[1].append('黑')
jsonv[1].append('白')
jsonv[1].append('灰')

# 或者一次性添加整个列表
# jsonv[1].extend(['黑', '白', '灰'])

最后,如果您想要得到的结果包括多个键值对,您可以在开始时直接定义它们,或者按照上述方法逐个添加:

jsonv = {
    1: ['黑', '白', '灰'],
    2: ['黑', '灰'],
    3: ['白']
}

或者按照您的步骤逐个构建:

jsonv = {}
jsonv[1] = []  # 添加键1和空列表作为值
jsonv[1].extend(['黑', '白', '灰'])  # 添加颜色到键1的列表中
jsonv[2] = ['黑', '灰']  # 直接添加键2和对应的列表值
jsonv[3] = ['白']  # 直接添加键3和对应的列表值

这样jsonv就会包含您想要的所有键值对。如果您想要将jsonv转换为JSON格式的字符串,可以使用json模块的dumps()函数:

import json

json_str = json.dumps(jsonv, ensure_ascii=False, indent=4)  # 确保中文不被转义,并格式化输出
print(json_str)

这将输出格式化的JSON字符串。

1 个回答

jsonv = {}


def add_key_value(json_obj, key, value):
    
    if key not in json_obj:
        json_obj[key] = []
    json_obj[key].append(value)

add_key_value(jsonv, 1, '黑')
add_key_value(jsonv, 1, '白')
add_key_value(jsonv, 1, '灰')

add_key_value(jsonv, 2, '黑')
add_key_value(jsonv, 2, '灰')

add_key_value(jsonv, 3, '白')

print(jsonv)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题