Postman Edit有效内容的Python脚本来解析字符串

问题描述

在Postman窗口中,我可以使用以下有效负载将数据写到数据库

payload = "{\"Items\": [{\"SystemId\": \"FPC\",\"EngagementId\": \"40211\",\"DE_LOD_INF_LAND_LAT\":\"20.000000\",\"DE_LOD_INF_LAND_LONG\":\"50.000000\"},{\"SystemId\": \"FPC\",\"EngagementId\":\"67039\",\"DE_LOD_INF_LAND_LAT\":\"0.000000\",\"DE_LOD_INF_LAND_LONG\": \"60.000000\"}]}\r\n"

我希望用Postman外部的python代码中的以下字符串替换它;

p='[{"SystemId": "FPC","EngagementId": "40211","DE_LOD_INF_LAND_LAT": "0.000000","DE_LOD_INF_LAND_LONG": "0.000000"},{"SystemId": "FPC","EngagementId": "67039","DE_LOD_INF_LAND_LONG": "0.000000"}]'

我使用以下代码进行替换;

url = "url"

payload = '"{\"Items\": '+ p + '}"'
headers = {
  'Authorization': access_token.split('"')[3],'Content-Type': 'application/json'
}

response = requests.request("POST",url,headers=headers,data = payload)

print(response.text.encode('utf8'))

p打印为

"{"Items": [{"SystemId": "FPC","DE_LOD_INF_LAND_LONG": "0.000000"}]}"

我收到以下错误

b'{"Messages":[{"code":"WEBSVC0020","Message":"The request object Could not be parsed. Please check the structure of your request.","NotificationType":"Error","iserror":true}]}'

如何纠正此问题?或者由于p不是静态的并且我无法在脚本中进行硬编码,我还有什么其他选择?

解决方法

为什么不使用json模块?

尝试一下:

import json

url = "url"
p = '[{"SystemId": "FPC","EngagementId": "40211","DE_LOD_INF_LAND_LAT": "0.000000","DE_LOD_INF_LAND_LONG": "0.000000"},{"SystemId": "FPC","EngagementId": "67039","DE_LOD_INF_LAND_LONG": "0.000000"}]'
payload = {'Items': json.loads(p)}

print(payload['Items'][0]['SystemId'])
headers = {
    'Authorization': access_token.split('"')[3],'Content-Type': 'application/json'
}

response = requests.request("POST",url,headers=headers,data=json.dumps(payload))

print(response.text.encode('utf8'))