巨大な JavaScript 配列を保持する JavaScript オブジェクトのコードを解析し、それをリスト付きの Python 辞書に変換しようとしています。
現時点では PyYaml を使用していますが、連続したコンマを処理できないため、直接は機能しませんでした (たとえば、'[,,,0,]' で壊れます:ノードの内容が予期されましたが、', ' )。だから私はこれらを置き換えましたが、これはすべて非常に遅いです。これを行うためのより良い、より高速な方法を知っている人がいるかどうか疑問に思っています。JavaScript コードも JSON が有効でないため、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))