如何在json数组中重命名键和更改值

时间:2017-08-29 08:25:46

标签: python json python-2.7 date

我有一个json:

abc = """
    {"entities":[
        {"entity":"sys-date",
         "location": [38,56],
         "value":"2007-01-01"}
    ]}
"""

我需要将实体名称​​ sys-date 替换为名称​​ Year ,并且值应更新为2007(从日期中提取年份部分)。

应删除现有名称​​ sys-date 和值 2007-01-01

我如何在python 2x中进行此操作。请帮忙。

1 个答案:

答案 0 :(得分:2)

您可以使用json模块将json字符串加载或转储到python中的简单dict对象,并根据需要进行编辑。

为了编辑日期时间,我使用datetime.strptime将日期字符串转换为datetime对象。

您可以详细了解strptime here

import json
from datetime import datetime


json_string = '''
    {entities":[
        {"entity":"A","location":[12,19],"value":"B",‌​"confidence":1},
        {"en‌​tity":"C","location"‌​:[23,28],"value":"D"‌​,"confidence":1},
        {"e‌​ntity":"E","location‌​":[29,34],"value":"F‌​","confidence":1},
        {"‌​entity":"sys-date","‌​location":[38,56],"v‌​alue":"2007-01-01"}
        '''

json_dict = json.loads(json_string)

for item in json_dict['entities']:
    if item['entity'] == 'sys-date':
        item['entity'] = 'Year'
        date = datetime.strptime(item['value'], '%Y-%m-%d')
        item['value'] = date.year

json_string = json.dumps(json_dict)