ast.literal_eval运行报错
来源:14-7 分析和获取所有的版块 - 1

weixin_慕勒4383646
2019-06-03
老师:找您的代码在pycharm中写了一遍,但在运行到 nodes_list = ast.literal_eval(nodes_str)时报错IndentationError: unexpected indent。请问是什么原因,该如何处理?
写回答
2回答
-
慕哥9471875
2020-04-24
网上查了一下,ast.literal_eval和eval区别在于ast.literal_eval更安全,字符串必须要完全符合各类型(list、dict等)格式才能从字符串到类型的转换。
老师的代码抓取的字符串里面在最前面(也就是 '[' 前面)有一个缩进,导致整段字符串不符合list的规则。
[{"name":"\u79fb\u52a8\u5f00\u53d1","url":"/forums/Mobile","childre....
将代码改成:node_list = ast.literal_eval(nodes_str[1:]),忽略第一个字符就可以。
212020-04-25 -
bobby
2019-06-05
如果这里有错的话 你试试使用:
import json
nodes_list = json.loads(nodes_str)
然后看看能不能行?
052019-07-25
相似问题