首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PythonAPI请求

PythonAPI请求
EN

Stack Overflow用户
提问于 2021-05-13 12:25:18
回答 1查看 34关注 0票数 0
代码语言:javascript
复制
Source=["SGD"]
Destination=["USD"]
Amount=[5000]

```import requests

url = "https://api.currencyfair.com/comparisonQuotes

有效载荷=“{\”currencyFrom\:\“SGD\”,\"currencyTo\":\"EUR\",\“type\\”:\“SELL\”,\"amountInfo\":

{“金额”:50000,\“比例”:2}“

标头={

代码语言:javascript
复制
'user-agent': "vscode-restclient",
代码语言:javascript
复制
'content-type': "application/json",
代码语言:javascript
复制
'accept': "application/json"
代码语言:javascript
复制
}

响应= requests.request("POST“、url、data=payload、headers=headers)

打印(response.text)

代码语言:javascript
复制

我需要将值传递给有效负载字符串-有效载荷= "{"currencyFrom":"SGD","currencyTo":"EUR","type":"SELL","amountInfo":{"amount":50000,“scale”:2}“需要使用在‘’上创建的3个列表将值传递给有效负载。

EN

回答 1

Stack Overflow用户

发布于 2021-05-13 12:43:56

你能解释一下你想要什么吗?

我怀疑您的意思是,每次调用函数以发布数据时,您都希望动态更新文本有效负载中的值。

我通常会这样做:创建占位符字符串,然后在运行时替换占位符值来更新占位符。

代码语言:javascript
复制
payload = "{\"currencyFrom\":\"@currencyFrom\",\"currencyTo\":\"@currencyTo\",\"type\":\"SELL\",\"amountInfo\": {\"amount\":@amountInfo,\"scale\":2}}"

currencyFrom = 'USD'
currencyTo = 'EUR'
amountInfo = 50000

payload = payload.replace('@currencyFrom', currencyFrom).replace('@currencyTo', currencyTo).replace('@amountInfo', amountInfo)

看看您试图与之交互的API,这是它所期望的示例:

代码语言:javascript
复制
{"currencyFrom": "EUR",
"currencyTo": "GBP",
"type": "SELL",
"amountInfo": {"amount": 100},
"ignoreFee": false}

这是一个遵循特定格式的JSON对象,如果您试图传递一个列表,而不是"currencyFrom“、"currencyTo”字段中的字符串,则会得到一个错误。

要获得多个值,响应只需对API执行多个请求,例如:

代码语言:javascript
复制
payload = "{\"currencyFrom\":\"@currencyFrom\",\"currencyTo\":\"@currencyTo\",\"type\":\"SELL\",\"amountInfo\": {\"amount\":@amountInfo,\"scale\":2}}"

currencyFrom = ['USD', 'GBP']
currencyTo = ['EUR', 'CHF']
amountInfo = 50000

payload = payload.replace('@currencyFrom', currencyFrom).replace('@currencyTo', currencyTo).replace('@amountInfo', amountInfo)
for currFrom in currencyFrom:
    for currTo in currencyTo:
        for amount in amountInfo:
            payload = payload.replace('@currencyFrom', currFrom ).replace('@currencyTo', currTo ).replace('@amountInfo', amount )
            response = requests.request("POST", url, data=payload, headers=headers)

希望这有意义!

编辑:根据您的注释更新代码。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67519203

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档