我的输入如下:
"custom_fields": "[{"id":360027795053,"value":"XXXX"},
{"id":360030272393,"value":"XXX"},
{"id":360027795613,"value":XXX},
{"id":360027795393,"value":"XXX"},
{"id":360027795413,"value":"XXX"},
{"id":360030272233,"value":"XXX"},
{"id":360027795453,"value":["XXX"]}]"
我按如下方式访问上面的内容:
dict_conversion=json.loads(custom_fields)
properties['field_1']=dict_conversion['360027795053']['value']
上面给出了以下错误:
列表索引必须为整数
看起来我正在尝试按元素名称调用元素,但不允许调用。我只能按以下索引号进行呼叫:
properties['field_1']=dict_conversion[1]['value']
但是我更喜欢用键名来呼叫。
任何帮助,不胜感激。
dict_conversion是字典列表,而不是字典。首先,您应该将其转换为dict,然后使用字符串进行访问。
dict_conversion = {k:v for dct in dict_conversion for k,v in dct}
您可以通过首先将id转换为键,将值作为其值的dict来执行此操作
custom_fields = [{"id":360027795053,"value":"XXXX"},
{"id":360030272393,"value":"XXX"},
{"id":360027795613,"value":"XXX"},
{"id":360027795393,"value":"XXX"},
{"id":360027795413,"value":"XXX"},
{"id":360030272233,"value":"XXX"},
{"id":360027795453,"value":"XXX"}]
id_dict = {i['id']: i['value'] for i in custom_fields}
print(id_dict)
>>> {360027795053: 'XXXX', 360030272393: 'XXX', 360027795613: 'XXX', 360027795393: 'XXX', 360027795413: 'XXX', 360030272233: 'XXX', 360027795453: 'XXX'}
好吧,首先:'360027795053'
是一个字符串,您必须删除引号以获取整数。
第二,dict_conversion
是一个列表,其中dict_conversion[0]['id'] == 360027795053
为真。没有'360027795053'
甚至没有360027795053
键。
如果要访问id为360027795053的值,最简单的方法当然是将json格式设置如下:
"[{360027795053:"XXXX"},
{360030272393:"XXX"},
{360027795613:"XXX"},
{360027795393:"XXX"},
{360027795413:"XXX"},
{360030272233:"XXX"},
{360027795453:["XXX"]}]"