前提
pythonで CSVを読んでOracle DBに登録したり、Oracle RestAPI を使い、ERPとOracle DBで受け渡しを行ったりしておます
実現したいこと
以下のような感じのJsonをrequests.postでPostしているのですが、
今作成中のものについてはjson内のダブルクォーテーションがシングルクオーテーションに変わってしまいJsonが正しくない状態になってしまいます。(下記 注①のような結果が返ってきます)
Postmanでシングルクオーテーションをダブルクォーテーションに変換したJsonをRawで渡すとCreatedとなりERPに登録されるのですが、Pythonのプログラムからだと登録されない状態です。
値がエスケープされると参照性整合性制約的にある項目がペイロードエラーになるためjson.dumpなどで変換はしないようにしています。
整形サイトでもJsonを貼ると正しいJSON形式ではありませんとなり、シングルクオーテーションをダブルクォーテーションに変換したJsonを設定すると正しいJsonとして判定され整形されます
どなたかJsonの’をダブルクォーテーションにする方法を教えてください
よろしくお願いします
注①
ステータス 400
Unable to parse the provided payload ( 提供されたペイロードを解析できません )
{
'TestKomoku': '0001',
'TestKomokuName': 'テスト',
'CreationDate': '2022-06-29T00:00:00.00+00:00',
'serials': [
{
'FmSerialNumber': 'UC1913_I000038',
'ToSerialNumber': 'UC1913_I000038'
}
]
}
→ プログラムでは全て ” で設定しているのに Jsonを出力すると ” が ’ に変換された状態になっています
発生している問題・エラーメッセージ
Unable to parse the provided payload ( 提供されたペイロードを解析できません
該当のソースコード
Python
1ソースコード
import requests
import json
#jsonのセットなど省略
headers = {'content-type': 'application/json'}
print (json_data)
r = requests.post(url, json_data, headers=headers)
print(r.status_code)
試したこと
string.replace("'", '"') → jsonが dict型なのでNG
json_list =[string.replace("'", '"') for string in json_data]
→ 変化なし
補足情報(FW/ツールのバージョンなど)
Python 3.9.12 Anaconda(Miniconda)

回答1件
あなたの回答
tips
プレビュー