python - PythonAPI 请求
问题描述
Source=["SGD"]
Destination=["USD"]
Amount=[5000]
```import requests
url = "https://api.currencyfair.com/comparisonQuotes"
payload = "{\"currencyFrom\":\"SGD\",\"currencyTo\":\"EUR\",\"type\":\"SELL\",\"amountInfo\":
{\"amount\":50000,\"scale\":2}}"
headers = {
'user-agent': "vscode-restclient",
'content-type': "application/json",
'accept': "application/json"
}
response = requests.request("POST", url, data=payload, headers=headers)
print(response.text)
我需要将值传递给有效负载字符串 - payload = "{"currencyFrom":" SGD ","currencyTo":" EUR ","type":"SELL","amountInfo":{"amount": 50000 ,"scale ":2}}" 需要使用上面创建的 3 个列表将值传递给有效负载```
解决方案
你能试着解释一下你在追求什么吗?
我怀疑你的意思是你想在每次调用函数发布数据时动态更新文本有效负载中的值。
我通常会通过创建一个占位符字符串然后通过在运行时替换占位符值来更新它来做到这一点。
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,这是它所期望的示例:
{"currencyFrom": "EUR",
"currencyTo": "GBP",
"type": "SELL",
"amountInfo": {"amount": 100},
"ignoreFee": false}
这是一个遵循特定格式的 JSON 对象,如果您尝试在“currencyFrom”、“currencyTo”等字段中传递一个列表而不是字符串,您将收到错误消息。
要获取多个值作为响应,只需对 API 执行多个请求,例如:
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)
希望这是有道理的!
编辑:根据您的评论更新代码。
推荐阅读
- swift - 打开键盘而不点击 tvOS 上的 TextField - Swift
- javascript - 无法访问 JSON 对象数组中对象的属性
- c# - 如何将 Google Cloud Platform Pub/Sub 消息推送到 C# 桌面应用程序
- javascript - 字符重复的字符串
- c++ - 声明和定义不匹配
- c# - 如何删除 LineRenderer 起点?(点 0,点 1,点 2)
- algorithm - 弗洛伊德循环检测算法:为什么乌龟最多只跑一圈?
- node.js - Node.js Multer 和 Imagemin 用于文件压缩
- docker - 为什么我在 dping apt-get update 时看到 Failed to fetch 错误
- json - 如何切换 Firefox JSON 查看器暗模式?