【发布时间】:2018-07-08 09:13:12
【问题描述】:
我有一个文件,基本上它是 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}]}]}
【问题讨论】:
-
首先,不是
re.IGNORECASE,而是flags=re.IGNORECASE。为什么不使用json? -
我尝试使用 json,但在替换 key:value 的嵌套级别时遇到了麻烦,所以我认为使用 regx 会更容易。
标签: python python-3.x regex