I got dictionary from code below following this SO link
and need to get Application name,source and message for every key in dictionary so i tried to transfer it in JSON file
if mail["Subject"].find("example error alert") > 0 :
body = get_email_body(mail)
info = {}
segments = body.split(' ')
for line in body.splitlines():
if 'Application name' and 'null' in line:
info['test'] = segments[0] + ' ' + segments[1] + ' ' + segments[2] + ' ' + segments[3] + ' ' + segments[4]
elif 'Application name' in line:
info['test'] = segments[0] + ' ' + segments[1] + ' ' + segments[2] + ' ' + segments[3] + ' ' + segments[4] + ' ' + segments[5] + segments[6] + ' ' + segments[7] + ' ' + segments[8] + ' ' + segments[9]
r = json.dumps(info['test'])
loaded_r = json.loads(r)
print(str(r['Source']))
i have this dictionary
print(info['test'])
Application name: example.service
Source: example_host_1|exampleHost1
Timestamp: 2019-01-22T00:00:43.901Z
Message:
Application name: example.api
Source: example_host_2|exampleHost2
Timestamp: 2019-01-23T07:42:12.649Z
Message: HTTP"GET" "/api/endpoint/groups" responded 500
i converted it to JSON without error
r = json.dumps(info['test'])
loaded_r = json.loads(r)
and when try extract Application_name from it:
loaded_r['Application name']
or Source
loaded_r['Source']
i'm getting TypeError: string indices must be integers
as suggested by duplicate link tried also print (loaded_r['Source'][0])
and print(str(r['Source']))
but the same
Message body example (used segments to leave only first some lines to remove duplicates):
Source: example_host_1
Timestamp: 2019-01-22T00:00:43.901Z
Message: null
For instructions please see: wiki_link
Application name: example.api
Source: example_host_2
Timestamp: 2019-01-23T07:42:12.649Z
Message: HTTP "GET" "/api/endpoint/groups" responded 500 in 7795.6441 ms
Application name: service.API
Source: example_host_2
Timestamp: 2019-01-23T07:42:12.646Z
Message: Unhandled exception
For instructions please see: example_wiki_link
Dictionary stored in info
variable
{'test': '\r\nApplication name: app.service\r\nSource: example_host_1\r\nTimestamp: 2019-01-22T00:00:43.901Z\r\nMessage:'}
{'test': '\r\nApplication name: app.API\r\nSource: adc266f53205\r\nTimestamp: 2019-01-23T07:42:12.649Z\r\nMessage: HTTP"GET" "/api/endpoint/groups" responded 500'}