2016-06-27 8 views
1

私はこの問題に関する解決策を探していましたが、理解できるものは見つかりませんでした。私はPythonの初心者で、なぜエラーメッセージが出るのか理解するための基本的な助けが必要です。TypeError:JSONのシリアライズ可能ではありません。Pythonを使用したテキストファイルへのJSON

import requests 
import json 

r = requests.get("http://api.bls.gov/publicAPI/v2/timeseries/data/LAUCN040010000000005") 

with open("C:\...MyPath...\Output.txt", "w") as outfile: 
    json.dumps(r, outfile) 

これは私がテストしている簡単なコードです。私は助けに感謝します。

+0

'r'はJSONオブジェクトではありません。あなたはjsonでないものをダンプすることはできません。ただし、最初にbls文字列をJSONオブジェクトに解析してからダンプすることはできます。しかし、私はそれにはあまり意味がありません。 –

+0

withブロック内にjson.dumpsをインデントする必要があります – Tommy

答えて

2

jsonに/から変換する必要はありません。そのままテキストとして保管してください。

import requests 

r = requests.get("http://api.bls.gov/publicAPI/v2/timeseries/data/LAUCN040010000000005") 

with open("C:\Users\mhoward2\Documents\Python Scripts\Output.txt", "w") as outfile: 
    outfile.write(r.text) 
+0

ありがとうございます>私のハードドライブにJSONがいくつかあります。私は何年もかけてstackoverflowから多くを学んだ... VBA ... SQL ...そして今はPython。これは私がこれまでに求めてきた最初の質問です。 – Requiesit

+0

私は助けることができてうれしいです –

1

あなたは.json()dumpを呼び出すか、単にコンテンツを記述する必要があります。あなたが現在書き込もうとしている何

r = requests.get("http://api.bls.gov/publicAPI/v2/timeseries/data/LAUCN040010000000005") 

with open("C:\Users\mhoward2\Documents\Python Scripts\Output.txt", "w") as outfile: 
    outfile.write(r.content) 

がある:ある

<Response [200]> 

requests.models.Responseオブジェクトです。

+0

'content'はあなたがバイトとして応答にアクセスできるようにするため、' open'の呼び出しはおそらく 'w'の代わりに' wb'を持つべきです。 –

+0

@iliacholy、python2ではありません。 –

+0

どういう意味ですか? (あなたが間違っていると言っているのではなく、ちょっと好奇心が強いです) –

関連する問題