Python字符串引号的小问题 / 多个朋友多条路

在之前的系列帖子中:

我通过例子介绍了一些API的用法。

hands-2706109_960_720.jpg

API示例

简单挑选几个列举如下:

获取市场报价

curl -s --data '{"jsonrpc": "2.0", "method": "call", "params": ["market_history_api", "get_ticker", []], "id": 1}' https://steemd.steemit.com

又比如:

获取指定用户当前挂单信息

curl -s --data '{"jsonrpc": "2.0", "method": "call", "params": ["database_api", "get_open_orders", ["deanliu"]], "id": 1}' https://steemd.steemit.com

其实还有很多有用的API,比如说:

获取账户信息的

curl -s --data '{"jsonrpc": "2.0", "method": "call", "params": ["database_api", "get_accounts", [["oflyhigh"]]], "id": 1}' https://steemd.steemit.com

API "params" 组成

更多的API介绍,不是我们这篇文章的主题,我想说的是我调试程序过程中遇到的一个事情。

如上述API示例中所描述的那样,去掉固定部分,其实"params"部分是固定的用逗号分隔的三部分组成,比如上述例子中的"params"部分:

"market_history_api", "get_ticker", []
"database_api", "get_open_orders", ["deanliu"]
"database_api", "get_accounts", [["oflyhigh"]]

遇到的问题

问题就出在第三部分上。

我想把第三部分 ["deanliu"]用变量的方式传递给固定的字符串模板,然后组合出上述API调用。

其中核心代码如下:

list = ["deanliu"]
str = str(list)
print(str)

看到这个结果我就哭了😭

  • 我想得到是这样的字符串:'["deanliu"]'
  • 结果得到是这样的字符串:"['deanliu']"

这就有些尴尬了,因为第二字符串传递到模板里会导致错误的结果。

寻求帮助

作为一个初学者,我研究了半天,也没有找到合适的方式来解决这个问题,我甚至准备写一段代码来对得到的字符串进行转换,但是能否实现先不说,我总觉得这样的处理方式不优雅。

恰巧看我的一个QQ群里有几个夜猫子闲聊,其中一个QQ好友据我所知玩过很长时间的Python,我把上述例子发给他,并向他求教,如何把"['deanliu']"转换成'["deanliu"]',他马上给我回复说试试json.dumps

于是我改写了上述例子变成了这样:

import json
list = ["deanliu"]
str = json.dumps(list)
print(str)


完美地解决了我的问题。

结论

这个问题,对于高手(比如我这个朋友)而言,就是一句话解决。

而如若没有他的指点,我可能耗费数个小时的时间来寻找解决方法,并且极有可能用极其不优雅的方式实现。

多个朋友多条路, 古之人诚不欺我!

(封面图源 :pixabay)

H2
H3
H4
3 columns
2 columns
1 column
30 Comments