0

json 応答をクエリして保存するための次のコードがあります。クエリは json 出力を返しますが、コードで保存すると、json 形式を保持できなくなります。

file_out='C:\\Users\\ayush488\\Desktop\\annotation_for_new_dataset\\url'+str(cnt)+'.txt'
    cnt=cnt+1

    response=urllib2.urlopen('http://www.diffbot.com/api/article?token='+token+'&url='+url).read()
    with open(file_out,'w') as outfile:
        json.dump(response,outfile)

jsonコンテンツを適切に保存する方法を誰か教えてもらえますか?

出力のサンプルは次のとおりです。

"{\"icon\":\"http:\\/\\/open.blogs.nytimes.com\\/favicon.ico\",\"author\":
4

1 に答える 1

4

JSON 応答を二重エンコードしています。

Python オブジェクトに変換できる文字列値を受け取っています。json.loads()その応答をファイルに保存するには、エンコードせず、デコードせずに、そのままファイル オブジェクトに保存します。最も効率的な方法は、次を使用することshutil.copyfileobj()です。

import shutil

response=urllib2.urlopen('http://www.diffbot.com/api/article?token='+token+'&url='+url).read()
with open(file_out,'w') as outfile:
    shutil.copyfileobj(response, outfile)
于 2013-07-19T21:24:01.627 に答える