JSONファイルを出力しようと思ったら、ファイルの最初と最後に変な文字が入っていた問題
そもそも、関数を理解していないんじゃないかと思ったので、ちゃんと理解しなきゃと痛感。
参考にしていたサイト
ここを参考にベースを作ってました。
Google Cloud Visionを使ってみた
やっていたこと
そもそも、何をしていたかというと、Cloud Vison APIをたたいて取得したresponse結果をpickle.dumpでファイル出力していました。
したら、先頭に「�X~」など変な文字は入るし、末尾には「q.」が入って困っていました。
そのため、出力したファイルをjson.loadができなかった。
※pickle.loadはできていた
response = requests.post(ENDPOINT_URL
,data=json.dumps({"requests": img_requests}).encode()
,params={'key': api_key}
,headers={'Content-Type': 'application/json'})
result = json.dumps(response.json()['responses'], ensure_ascii=False, indent=4)
print(result)
f = open("./output.json", 'wb')
pickle.dump(result, f)
解決
以下のように処理を変えたら、json.loadで読み込める形で出力できた。
f = open("./output.json", 'wb')
f.write(result.encode("UTF-8"))
これ、書いてて思って、以下で試してみたけれど、
最初の問題と変わらず。理解不足。わかったら追記したい。
バイナリ形式だったからとか?なんにせよ、調査。
f = open("./output.json", 'wb')
f.write(result.encode("UTF-8"))
以上。