How can I print what’s after a colon like ‘s’:, ‘E’:, or ‘p’: by giving the symbol as reference? I tried this based on all what I know so far but I get a weird error:
XXXX = f"{{'stream': 'ABCDEF', 'data': {{'s': 'ABC', 'E': 1123, 'p': '0.0', 'q': '0.0'}}}}"
print(XXXX)
print(XXXX['data']['p'])
Output:
{'stream': 'ABCDEF', 'data': {'s': 'ABC', 'E': 1123, 'p': '0.0', 'q': '0.0'}}
Error: in main: print(XXXX['data']['p'])
TypeError: string indices must be integers
>Solution :
By using ast module, you can simply do what you need:
import ast
XXXX = f"{{'stream': 'ABCDEF', 'data': {{'s': 'ABC', 'E': 1123, 'p': '0.0', 'q': '0.0'}}}}"
myDict = ast.literal_eval(XXXX)
print(myDict["data"]["p"])
Output
'0.0'