4
これは、dict
,tuple
、list
というオブジェクトから構築されたあらゆる種類のデータ構造から循環参照を削除する、本当にハックコードです。dicts、リスト、タプルの循環参照を削除する
import ast
def remove_circular_refs(o):
return ast.literal_eval(str(o).replace("{...}", 'None'))
しかし、私はどのようにハッキーが好きではありません。データ構造を文字列表現にすることなくこれを行うことはできますか?ここで
はしてテストするための構成例である:
doc1 = {
"key": "value",
"type": "test1",
}
doc1["self"] = doc1
doc = {
'tags': 'Stackoverflow python question',
'type': 'Stackoverflow python question',
}
doc2 = {
'value': 2,
'id': 2,
}
remove_circular_refs(doc)
remove_circular_refs(doc1)
remove_circular_refs(doc2)