如何从 Python 发送 "string array" 作为 HTTP post 数据?

How to send a "string array" as HTTP post data from Python?

我正在使用 Python 连接到接收 http post 消息的 Web 服务。对于一项特定服务,文档内容如下:

Parameters:

Name               Type           Value
meteringPointIds   String array   List of metering point ids

HTTP verb: POST

我只有一个计量点id,所以我用的是这个结构:

postData = {'meteringPointIds': meteringPointId}
r = requests.post( url + path, headers=headers, json=postData)

变量 meteringPointId 包含一个带有测量点 ID 的字符串。

#20013: No meteringpoints in request conforms to valid meteringpoint format.

假设计量点id是1234,我试过了

postData = {'meteringPointIds': 1234}
postData = {'meteringPointIds': [1234]}
postData = {'meteringPointIds': ['1234']}
postData = {'meteringPointIds': '[1234]'}
postData = {'meteringPointIds': ["1234"]}
postData = {'meteringPointIds': "[1234]"}

但是无论我做什么,我总是得到上面的错误。我错过了什么?

Web 服务文档:

Customer and Third party API for Datahub Eloverblik Technical description

API - Data Description

尝试使用逗号分隔值的字符串。我不认为你只需要一个值的逗号。

postData = {'meteringPointIds': "1234"}

试试这个 JSON:

postData = {
    "meteringPoints": {
        "meteringPoint": [
            "1234"
        ]
    }
}

或者,也许

postData = {
    "meteringPointIds": {
        "meteringPoints": {
            "meteringPoint": [
                "1234"
            ]
        }
    }
}