从字符串转换JSON中的嵌套字典

时间:2020-06-30 14:27:38

标签: python json dictionary

我加载的JSON数据似乎有点杂乱的数据结构,其中嵌套的字典用单引号引起来并被识别为字符串,而不是我可以循环通过的单个字典。从键值属性(“值”)中删除单引号的最佳方法是什么。

下面提供的是该结构的示例:

for val in json_data:
    print(val)


{'id': 'status6',
   'title': 'Estimation',
   'text': '> 2 days',
   'type': 'color',
   'value': '{"index":14,"post_id":null,"changed_at":"2020-06-12T09:04:58.659Z"}',
   'name': 'Internal: online course'},
  {'id': 'date',
   'title': 'Deadline',
   'text': '2020-06-26',
   'type': 'date',
   'value': '{"date":"2020-06-26","changed_at":"2020-06-12T11:33:37.195Z"}',
   'name': 'Internal: online course'},
  {'id': 'tags',
   'title': 'Tags',
   'text': 'Internal',
   'type': 'tag',
   'value': '{"tag_ids":[3223513]}',
   'name': 'Internal: online course'},

如果我添加定位[[value]]的嵌套外观,它会按字符而不是字典中的键值对循环。

1 个答案:

答案 0 :(得分:0)

使用json.loads将字符串转换为字典

import json

json_data = [{'id': 'status6',
   'title': 'Estimation',
   'text': '> 2 days',
   'type': 'color',
   'value': '{"index":14,"post_id":null,"changed_at":"2020-06-12T09:04:58.659Z"}',
   'name': 'Internal: online course'},
  {'id': 'date',
   'title': 'Deadline',
   'text': '2020-06-26',
   'type': 'date',
   'value': '{"date":"2020-06-26","changed_at":"2020-06-12T11:33:37.195Z"}',
   'name': 'Internal: online course'},
  {'id': 'tags',
   'title': 'Tags',
   'text': 'Internal',
   'type': 'tag',
   'value': '{"tag_ids":[3223513]}',
   'name': 'Internal: online course'}]


# the result is a Python dictionary:
for val in json_data:
    print(json.loads(val['value']))

这应该可行!