じゃあこんな感じで。(手作業)ワ行の解釈は適当。
z = list(u"ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ・ー、。「」")
h = [u"ァ", u"ア", u"ィ", u"イ", u"ゥ", u"ウ", u"ェ", u"エ", u"ォ", u"オ",
   u"カ", u"ガ", u"キ", u"ギ", u"ク", u"グ", u"ケ", u"ゲ", u"コ", u"ゴ",
   u"サ", u"ザ", u"シ", u"ジ", u"ス", u"ズ", u"セ", u"ゼ", u"ソ", u"ゾ",
   u"タ", u"ダ", u"チ", u"ヂ", u"ッ", u"ツ", u"ヅ", u"テ", u"デ", u"ト", u"ド",
   u"ナ", u"ニ", u"ヌ", u"ネ", u"ノ",
   u"ハ", u"バ", u"パ", u"ヒ", u"ビ", u"ピ", u"フ", u"ブ", u"プ",
   u"ヘ", u"ベ", u"ペ", u"ホ", u"ボ", u"ポ",
   u"マ", u"ミ", u"ム", u"メ", u"モ",
   u"ヤ",u"ャ", u"ユ", u"ュ", u"ヨ", u"ョ",
   u"ラ", u"リ", u"ル", u"レ", u"ロ",
   u"ゥァ", u"ワ", u"ウィ", u"ウェ", u"ヲ", u"ン", u"ヴ", u"カ", u"ケ",
   u"・", u"ー", u"、", u"。", u"「", u"」"]

z2h = dict(zip(z, h))
h2z = dict(zip(h, z))

def hanzen(ustr):
  return ''.join(h2z.get(uc, uc) for uc in ustr)
def zenhan(ustr):
  return ''.join(z2h.get(uc, uc) for uc in ustr)