[python]パブリックデータポータルSERVICE KEY IS NOT REGISTERRED ERROR
問題の状況
前の文章
https://velog.io/@ingzart/python-web-apiで-何かあったら-だめ-まず-犯人は-代理
ジェジュンはエージェントの問題を解決しましたが、別のエラーが発生しました.response = requests.get(url, params=params)
raw_result = response.content
try:
converted_result = json.loads(raw_result)
except Exception as e:
return str(e)
私はparamsで戻りデータ型をJSONに設定し、魔法関数jsonでjson->python dictに変換して、私のPythonコードできれいな修飾を行います.これはload()を使っているのですが、どういうことなのか、取りに来たときに間違えていたら、次のHTML(?)文字列をそのまま返すように見えます<OpenAPI_ServiceResponse>\n
\t<cmmMsgHeader>\n
\t\t<errMsg>SERVICE ERROR</errMsg>\n
\t\t<returnAuthMsg>SERVICE_KEY_IS_NOT_REGISTERED_ERROR</returnAuthMsg>\n
\t\t<returnReasonCode>30</returnReasonCode>\n
\t</cmmMsgHeader>\n
</OpenAPI_ServiceResponse>'
2つの重要な情報SERVICE_KEY_IS_NOT_REGISTERED_ERROR
30
しかし、私は確かに関連ドキュメントの下表で確認したように、認証鍵(符号化)をパラメータに渡しました.service_key = self.service_key_encode
ここまで、私は何も間違っていないと思います.今はどうしてだめですか.あなたは十大熱病を起こすことができます.
しかし、この射札のような和弦は、私がそばで怒っていても泣いていても、根本的な原因を解決しなければ、絶対に行動するつもりはないので、冷静に具博士の助けを求めなければならない.
解決策
彼は、共通データポータルから符号化されたキー値を受信し、パラメータに渡したが、符号化されていないキー値(すなわち、私の符号化キー値を復号する)を加えなければならないと述べた.
パブリックデータポータルにも符号化キー値が与えられていて、「符号化していないと伝わらない特殊な文字が含まれていて、符号化しなければならない」というのは、なぜなのか考えてみました.私の脳皮層では、Pythonのリクエストライブラリは自分でコードすることができ、他の言語やライブラリではコードしないからかもしれません.(Pythonは符号化キーを2回、符号化キーを使用しないライブラリは符号化キーを1回使用するように要求)service_key = self.service_key_decode
つまり、復号キーの値を入れることで、解決します.
他のブログは直接復号されていますが、このようなコンサルティングが多いので、最近公共データポータルサイトにサービス鍵を追加し、コード値を知ることができて、入れました.
Reference
この問題について([python]パブリックデータポータルSERVICE KEY IS NOT REGISTERRED ERROR), 我々は、より多くの情報をここで見つけました
https://velog.io/@ingzart/python-공공데이터포털-SERVICEKEYISNOTREGISTEREDERROR
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
response = requests.get(url, params=params)
raw_result = response.content
try:
converted_result = json.loads(raw_result)
except Exception as e:
return str(e)
<OpenAPI_ServiceResponse>\n
\t<cmmMsgHeader>\n
\t\t<errMsg>SERVICE ERROR</errMsg>\n
\t\t<returnAuthMsg>SERVICE_KEY_IS_NOT_REGISTERED_ERROR</returnAuthMsg>\n
\t\t<returnReasonCode>30</returnReasonCode>\n
\t</cmmMsgHeader>\n
</OpenAPI_ServiceResponse>'
SERVICE_KEY_IS_NOT_REGISTERED_ERROR
30
service_key = self.service_key_encode
彼は、共通データポータルから符号化されたキー値を受信し、パラメータに渡したが、符号化されていないキー値(すなわち、私の符号化キー値を復号する)を加えなければならないと述べた.
パブリックデータポータルにも符号化キー値が与えられていて、「符号化していないと伝わらない特殊な文字が含まれていて、符号化しなければならない」というのは、なぜなのか考えてみました.私の脳皮層では、Pythonのリクエストライブラリは自分でコードすることができ、他の言語やライブラリではコードしないからかもしれません.(Pythonは符号化キーを2回、符号化キーを使用しないライブラリは符号化キーを1回使用するように要求)
service_key = self.service_key_decode
つまり、復号キーの値を入れることで、解決します.他のブログは直接復号されていますが、このようなコンサルティングが多いので、最近公共データポータルサイトにサービス鍵を追加し、コード値を知ることができて、入れました.
Reference
この問題について([python]パブリックデータポータルSERVICE KEY IS NOT REGISTERRED ERROR), 我々は、より多くの情報をここで見つけました https://velog.io/@ingzart/python-공공데이터포털-SERVICEKEYISNOTREGISTEREDERRORテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol