2017-07-09 7 views
1

LegisScanから請求書のテキストを分析しようとしていますが、APIプルレスポンスのテキストをデコードする際に問題が発生しています。 LegisScanは、APIを使用してベース64にあるすべての法律の全文をエンコードしています。デコードに問題があります。Decode Base64のテキストをLegiscan APIからR

この downloaded JSON requestは、APIを通じてダウンロードしたJSON結果の全文部分の例です。しかし、通常の方法では動作していないようです。

私が試してみました何:

  1. Legiscanは直接Rをサポートしていないようですので、私はパッケージLegiscanRを使用しました。 LegssanRのBillText関数を使用して正しいJSONリンクを取得した後、parseBillTextを使用してリンクからUTF-8にテキストをデコードしようとしました。しかし、それも正しいAPIキーとリンクに記載された文書IDとfromJSONエラーをスローします。 オブジェクト ':fromJSON(コンテンツ、ハンドラ、default.size、深さ、allowComments、中

エラーbase64decode(base64encパッケージ)またはbase64Decode(RCurlパッケージ)生に基部64からテキストに変換する機能を使用して、その後にrawToChar関数を用い

  • が見つかりません「厳密文字に変換してください。

    マイコード:rawToCharで

    text <- base64decode("https://www.dropbox.com/s/5ozd0a1zsb6y9pi/Legiscan_fulltext.txt?dl=0") 
    
    rawToChar(text) 
    Nul <- text == as.raw(00) 
    text[Nul] <- as.raw(20) 
    text2 <- rawToChar(text) 
    

    しかし、一人でrawToCharを使用しようとする私に、 "文字列に埋め込まれたNUL" を与えるエラー

    エラー(TEST2):文字列内の 埋め込まれたNUL: '%\\ \ n \ 0 \ obj \ r \ n <> \ 0 < >>> \ r \ nendobj \ r \ n2 0 obj \ r \ n \ 0エンドポイント\ 0 0 obj \ r \ n </ExtGState </ProcSet [/ PDF/Text/ImageB/ImageC/ImageI]/MediaBox [0 0 612 792] /コンテンツ4 0 R/Group < >/Tabs/S/StructParents 0 >> \ x \ x95 \ xe3 \ x15 \ x15 \ x15 \ x15 \ x15 \ x15 \ x15 \ x15 \ x15 \ x15 \ x15 \ x22 \ x92 \ x92 \ xa0 \ xca \ xe2 \ x86 "\ 025 \ 036 \ xf6 \ xe6 \ xd4 \ x9 \ b0 \ x93 \ x99 \ xa3 \ 001 | \ xdd \ xfdu7 \ xa4 \ xf9U \ xd5d \ xeb9 \ xe7 \ xcf \ xe7WM \ x93,7 \ x9f \ u07d5 \ xbb \ xbf \ xe6w \ x9fw \ xe9 \ xfc \ x9f \ 025I \ x93 \ x95 \ xc5 \ xfc \ xb6 ] 4 \ XF8 \ xe8 \ x874Y \ xa5Ջ\ 027 \ XEC \ xe5 \ xabk \ XF6 \ XF2 \ XEE \ xfcl〜\ xc3Yl \ xc7

    \スペースを表すために、これらのヌルを代入すると、rawToCharを実行することができます出力が不安定であるか、または予想される英語のテキスト文字ではない別の形式のエンコーディングで出力されます。

    [1]「\ X86 \ xdbi \ XB3 \ XFF \ XF0 \ XC3 \ AK \ XA2 \ X96 \ xe8 \ XC5 \ XCA & \ XFE \ XCF \ xf9 \ xa37tk \\ xeco \ XAC \ XBD \ xa6/\ xcbz \ B \ xacq \ xa9 \ u07faYm {\ 033メートル\ xc6

    「xd7e \他に何上の任意の他のアイデアを試してみますか?ありがとう。私は、次のコードは、働いていたPythonでとPythonで同じ問題を扱ってきた

    答えて

    0

    import base64 
    raw = base64.b64decode(bill_text['doc']) 
    pdf_result = open(output_file, "wb").write(raw) 
    

    私は多分あなたのケースであなたはすぐにテキストに文書を変換しようとしていると思いますが、それはないかもしれませんPyPDF2ライブラリの関数を使って保存したPDFファイルを解析することで、Pythonで簡単にやりました。