我在项目中处理的一些传入对象具有未知结构;属性我不能依赖。我决定尝试build a function来帮忙。
>>> line = u'\u0627\u062f\u0646\u06cc\u0670'
>>> re.sub(ur'\u06cc\u0670$', ur'\u0627', line) #works fine
u'\u0627\u062f\u0646\u0627'
>>> re.sub(ur'\u06cc\u0670[$]', ur'\u0627', line) #unexpected result
u'\u0627\u062f\u0646\u06cc\u0670'
>>> re.sub(ur'\u06cc\u0670[$]', ur'\u0627', line, re.U) #still not working
u'\u0627\u062f\u0646\u06cc\u0670'
>>> re.sub(ur'\u06cc\u0670\b', ur'\u0627', line, re.U) #unexpected
u'\u0627\u062f\u0646\u06cc\u0670'
>>> re.sub(ur'\u06cc\u0670\B', ur'\u0627', line, re.U) #unexpected
u'\u0627\u062f\u0646\u0627'
我的问题是,是否有更好的方法来获取具有未知结构的对象的所有属性?一个小问题也是;可以改善正则表达式吗?这假设对象是一个深度。我想,在获得密钥后,可以迭代它们以找到其他对象,从而找到其他密钥。