我有以下 json 结构,根据我的理解,ndatas 是键,值作为列表返回。我想遍历每个值并使用正则表达式删除完整的字符串“\nCupdate:”。
{
"ndatas": [
{
"results": {
"pnr_number": "PNR9087651232",
"Reservation Date": "2020-09-29T10:33:55.000+0000",
"Current State": "Waiting List",
"BookingLogs": [
{
"pnr_category": "agent",
"tstp": "2020-09-29T10:54:56.000+0000",
"detail": "Booking Closed: Updated customer"
},
{
"pnr_category": "Railway",
"tstp": "2020-09-29T10:56:41.000+0000",
"detail": "Tatkal tickets reservation is open"
},
{
"pnr_category": "booking_via_irctc",
"tstp": "2020-09-29T10:56:54.000+0000",
"detail": "Info from Railway\nTrain: T12049 \nStatus: Started\nCupdate: Functioning on Time"
},
{
"pnr_category": "booking_via_irctc",
"tstp": "2020-09-30T14:44:34.000+0000",
"detail": "Info from Railway\nTrain: T12049 \nStatus: Reached\nCupdate: On Time"
},
{
"pnr_category": "agent",
"tstp": "2020-10-01T07:12:20.000+0000",
"detail": "All bookings Truncated"
},
{
"pnr_category": "booking_via_irctc",
"tstp": "2020-10-07T15:30:16.000+0000",
"detail": "Info from Railway\nTrain: T12049 \nStatus: Cancelled\nCupdate: Heavy Rain"
}
],
"from": "Kolkatta",
"to loc": "Mumbai"
}
},
{
"results": {
"pnr_number": "PNR90876512322",
"Reservation Date": "2020-09-29T10:33:55.000+0000",
"Current State": "Waiting List",
"BookingLogs": [
{
"pnr_category": "agent",
"tstp": "2020-09-29T10:54:56.000+0000",
"detail": "Booking Closed: Updated customer"
},
{
"pnr_category": "Railway",
"tstp": "2020-09-29T10:56:41.000+0000",
"detail": "Tatkal tickets reservation is open"
},
{
"pnr_category": "booking_via_irctc",
"tstp": "2020-09-29T10:56:54.000+0000",
"detail": "Info from Railway\nTrain: T12049 \nStatus: Started\nCupdate: Functioning on Time"
},
{
"pnr_category": "booking_via_irctc",
"tstp": "2020-09-30T14:44:34.000+0000",
"detail": "Info from Railway\nTrain: T12049 \nStatus: Reached\nCupdate: Arrival Info: On Time.\n\nIRCTC"
},
{
"pnr_category": "agent",
"tstp": "2020-10-01T07:12:20.000+0000",
"detail": "All bookings Truncated"
},
{
"pnr_category": "booking_via_irctc",
"tstp": "2020-10-07T15:30:16.000+0000",
"detail": "Info from Railway\nTrain: T12049 \nStatus: Cancelled\nCupdate: Heavy Rain"
}
],
"from": "Kolkatta",
"to loc": "Mumbai"
}
}
]
}
我尝试过类似以下的方法,但正则表达式似乎没有效果。我错过了什么?
import json
import re
try:
with open(r'C:\Users\maryo\Desktop\responses.json', encoding='utf-8') as f:
data = json.load(f)
print("This is a valid JSON File")
except ValueError as e:
print("This is an invalid JSON File")
for x in data['ndatas']:
regex = re.sub(r'\\nCupdate.*', r'"', str(x))
print(data['ndatas'])