我有以下字串:
txt = "{\'legs_a\': 1,\'legs_b\': 0,\'score_a\': 304,\'score_b\': 334,\'turn\': B,\'i\': 2,\'z\': 19}"
當我列印它時,我在控制臺中看到以下輸出
{'legs_a': 1,'legs_b': 0,'score_a': 304,'score_b': 334,'turn': B,'i': 2,'z': 19}
我想通過使用來制作字串的字典 ast.literal_eval()
import ast
d = ast.literal_eval(txt)
這會產生以下錯誤:
{ValueError}畸形節點或字串:<_ast.Name object at 0x7fb8b8ab4fa0>
請解釋發生了什么問題?如何從字串制作字典?謝謝
uj5u.com熱心網友回復:
B 是未定義的變數或未加引號的字串。
嘗試:
txt = "{\'legs_a\': 1,\'legs_b\': 0,\'score_a\': 304,\'score_b\': 334,\'turn\': \'B\',\'i\': 2,\'z\': 19}"
d = ast.literal_eval(txt)
print(d)
輸出:
{'legs_a': 1, 'legs_b': 0, 'score_a': 304, 'score_b': 334, 'turn': 'B', 'i': 2, 'z': 19}
請注意,如果您想使用 json.loads() 函式反序列化 JSON 字串,則需要用雙引號替換單引號。
data = json.loads(txt.replace("'", '"'))
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/388734.html
上一篇:期望腳本生成sftp中的EOF
下一篇:洗掉R中的單引號
