将JavaScript对象/数组转换为Python dict/list的最快方法
Fastest way to convert JavaScript object/array to Python dict/list
我正在尝试解析包含巨大JavaScript数组的JavaScript对象的代码,并将其转换为带有列表的Python字典。
目前我正在使用PyYaml,但这并不能直接起作用,因为它不能处理连续的逗号(例如,它在'[,,,0,]'上打断,其中:应为节点内容,但找到了')。所以我把这些换掉了,但这一切都很慢。我想知道你们中是否有人知道更好更快的方法。JSON解码不起作用,因为JavaScript代码也不是JSON有效的。
这是我正在使用的代码,如上所述,以js_obj为例:
js_obj = "{index: '37',data: [, 1, 2, 3,,,]}"
def repl(match):
content = re.sub(" ", "",match.group(0))
length = len(content) - 1
result = ''
if content[0] == '[':
result = '[""'
length -= 1
after = ','
if content[-1] == ']':
length -= 1
after += '""]'
return result + (',""' * length) + after
py_dict = yaml.load(re.sub(''[? *(, *)+']?', repl, js_obj))
您可能应该使用JSON从JavaScript编写数据,然后用JSON将其读取到Python中。YAML还可以,但我更喜欢JSON而不是YAML;JSON更加一致。
如果您必须解析JavaScript,您可能需要研究pyparsing或类似功能。
相关文章:
- missing ) after argument list DATEDIF
- 在List.js中使用非英语字符
- 从Iframe检索List并使用List更新父帧
- Div and ul list side by side
- 无法反序列化 java.util.List 的实例VALUE_STRING
- 返回List<字符串>Jquery中的from JSON调用具有未定义的长度
- 传递List
作为Javascript函数的参数 - jqGrid - TypeError: “#List”.jqGrid 不是一个函数
- 如何使用 List.js 正确刷新列表
- Javascript: parse json to list
- V8如何处理这个/dict
- 结构和dict之间的区别是什么
- 将带点的dict键展开为另一个dict
- List.JS 在通过 Chrome 扩展程序注入时不起作用
- 使list.js和react.js协同工作
- Angular Grocery List-删除单个项目
- Insert dynamically created list items in <ol> with jqu
- 使用javascript中的另一个dict创建dict时出现意外的令牌
- 几秒钟后自动关闭ul.parsley-error-list
- 将JavaScript对象/数组转换为Python dict/list的最快方法