使用python将行中的字符串替换为动态值

2024-09-30 10:27:01 发布

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

我有一个文件,基本上是json中的响应,但我可以将其视为文件中的字符串行。我需要用动态值替换某个键的某个值,例如,获取值,进行一些计算,然后替换为该计算值

例如(日期更改为+1):

"dateFrom":"Jun 24, 2018 10:00:34 AM""dateFrom":"Jun 25, 2018 10:00:34 AM"

示例字符串为:

line = {"Num":"ML3","dateFrom":"Jun 24, 2018 10:00:34 AM","Val":"mean to","dateTo":"Jun 27, 2018 10:00:34 AM","requestInfo":{"requestIdentifier":"7cecc67d"}}

我试图通过使用正则表达式来解决这个问题,如下所示(“TEST”)是伪值,但我必须取date并替换为date+1

lt = re.sub(r'dateFrom|dateTo.*":(.*AM|PM)(.*)",',"TEST", line, re.IGNORECASE)

最终它并没有被正确地输出

预期:

line = {"Num":"ML3","dateFrom":"Jun 25, 2018 10:00:34 AM","Val":"mean to","dateTo":"Jun 28, 2018 10:00:34 AM","requestInfo":{"requestIdentifier":"7cecc67d"}}

非常感谢您的帮助

提前谢谢

样本数据为: {"lAttributes":[{"Identifier":{"newIdentifier":{"DDline":"BM","guideIdDate":"Jun 25, 2018 12:00:00 AM","guideNo":"MM","suffix":"A"},"origin":"FRY","destination":"DZ"},"guideOwner":"VX","guideRegistration":"DD","guideType":"44","bestDepartureStatus":"S","bestArrivalTime":"Jun 25, 2018 6:00:00 AM","bestArrivalStatus":"S","bestDepartureTime":"Jun 25, 2018 5:00:00 AM","compartments":[{"code":"DD","guideCapacity":8,"guideBooked":0,"guideForecast":0},{"code":"DD","guideCapacity":10,"guideBooked":0,"guideForecast":0},{"code":"DD","guideCapacity":32,"guideBooked":0,"guideForecast":0},{"code":"DD","guideCapacity":24,"guideBooked":0,"guideForecast":0}]}]}


Tags: 文件字符串linecodevalamnumjun
1条回答
网友
1楼 · 发布于 2024-09-30 10:27:01

您只需向字典键分配一个值,如下所示:

from datetime import datetime, timedelta

line = {"Num":"ML3","dateFrom":"Jun 24, 2018 10:00:34 AM","Val":"mean to","dateTo":"Jun 27, 2018 10:00:34 AM","requestInfo":{"requestIdentifier":"7cecc67d"}}

# Adds 1 day to dateFrom
new_date = datetime.strptime(line["dateFrom"], '%b %d, %Y %I:%M:%S %p') + timedelta(days=1)

# Formats new date as a string and assigns it to dictionary key
line["dateFrom"] = datetime.strftime(new_date, '%b %d, %Y %I:%M:%S %p')

print(line)
>>>{'Num': 'ML3', 'dateFrom': 'Jun 25, 2018 10:00:34 AM', 'Val': 'mean to', 'dateTo': 'Jun 27, 2018 10:00:34 AM', 'requestInfo': {'requestIdentifier': '7cecc67d'}}

如果需要将json字符串表示转换为字典(您的问题中有点不清楚),可以使用json库:

import json

line = '{"Num":"ML3","dateFrom":"Jun 24, 2018 10:00:34 AM","Val":"mean to","dateTo":"Jun 27, 2018 10:00:34 AM","requestInfo":{"requestIdentifier":"7cecc67d"}}'

line = json.loads(line)

相关问题 更多 >

    热门问题