如何通過將符號作為參考來列印冒號后的內容,例如 's':、'E': 或 'p':?我根據到目前為止所知道的所有內容進行了嘗試,但出現了一個奇怪的錯誤:
XXXX = f"{{'stream': 'ABCDEF', 'data': {{'s': 'ABC', 'E': 1123, 'p': '0.0', 'q': '0.0'}}}}"
print(XXXX)
print(XXXX['data']['p'])
輸出:
{'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
uj5u.com熱心網友回復:
通過使用ast模塊,您可以簡單地做您需要的事情:
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"])
輸出
'0.0'
uj5u.com熱心網友回復:
由于 XXXX 是一個字串,而您提供的示例是您要轉換的 json,我建議如下:
import json
#replace the single quote for double quote in order to parse the json string
x = json.loads(XXXX.replace("'", '"'))
#print the dictionary key you wanted
print(x['data']['p'])
對于給定的輸入,這可以按預期作業。如果您有任何其他樣品與提供的樣品不同,請告訴我。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/429458.html
