![](/img/trans.png)
[英]ValueError: malformed node or string with ast.literal_eval()
[英]can anyone tell me what i'm doing wrong? ast.literal_eval malformed node or string python3
喜,
我正在尝试使用ast.literal_eval将字典从字符串转换为字典,但是由于某种原因,我遇到了错误。 我真的不知道我在做什么错,有人可以告诉我为什么它行不通吗?
>>> ast.literal_eval("""{
"jsonrpc": "2.0",
"id": 1,
"result": {
"moreAvailable": false,
"currentOrders": [
{
"sizeCancelled": 0.0,
"marketId": "1.117685350",
"priceSize": {
"price": 1.03,
"size": 30.0
},
"placedDate": "2015-03-11T14:55:51.000Z",
"sizeLapsed": 0.0,
"orderType": "LIMIT",
"averagePriceMatched": 1.03,
"bspLiability": 0.0,
"matchedDate": "2015-03-11T14:55:57.000Z",
"sizeRemaining": 0.0,
"selectionId": 1485567,
"side": "BACK",
"betId": "47371597910",
"persistenceType": "LAPSE",
"handicap": 0.0,
"status": "EXECUTION_COMPLETE",
"regulatorCode": "DANISH GAMBLING AUTHORITY",
"sizeVoided": 0.0,
"sizeMatched": 30.0
}
]
}
}""")
Traceback (most recent call last):
File "<pyshell#49>", line 33, in <module>
}""")
File "C:\Python34\lib\ast.py", line 84, in literal_eval
return _convert(node_or_string)
File "C:\Python34\lib\ast.py", line 62, in _convert
in zip(node.keys, node.values))
File "C:\Python34\lib\ast.py", line 61, in <genexpr>
return dict((_convert(k), _convert(v)) for k, v
File "C:\Python34\lib\ast.py", line 62, in _convert
in zip(node.keys, node.values))
File "C:\Python34\lib\ast.py", line 61, in <genexpr>
return dict((_convert(k), _convert(v)) for k, v
File "C:\Python34\lib\ast.py", line 83, in _convert
raise ValueError('malformed node or string: ' + repr(node))
ValueError: malformed node or string: <_ast.Name object at 0x00000000052FE278>
false
在Python中不是有效的文字(它是False
1 )。
看起来您正在尝试解析json.loads
在这种情况下json.loads
可能正是您要寻找的内容。
1实际上,在python2.x上, False
根本不是文字,而是名称 ( ast.dump(ast.parse('False'))
)。 ast.literal_eval
(以及True
和None
)被特殊情况下评估为适当的值...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.