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

in #json7 years ago

在之前的系列帖子中:

我通过例子介绍了一些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)

Sort:  

How old am I?

Because we are friends.
多个朋友,多个栗子!

就像劉姊姊很常出現當例子(栗子)一樣~ @@

我是被出現捏~~~

一種被召喚的概念~
就決定是你了!!! ((指

举个栗子

怎么老是你?

显然你们之间有不可描述的关系。

我就是来点个赞,O哥你写的实在是让我看了头晕。哈哈

哈哈,回了两遍,我都头晕了

有好多问题都是自己折腾半天还搞不定,然后问了朋友以后才发现,人家一句话就能给你解决了。

Most importantly, they are willing to help you.
比如马云一句话,就能让我有好多钱 😭

Can't agree with you more!!!

Good job ,,,
I upvote 100% your post
Please you are visit my blog

Thanks a lot for this great post..BR

不错,我也挺喜欢

o哥 我有啥问题就问你了
至于能不能解决 就看你和你朋友了。
哈哈 :)

First of all, we need to be friends.
成为朋友的前提,一般是给我发好多好多好多红包 .......

Coin Marketplace

STEEM 0.20
TRX 0.14
JST 0.030
BTC 64202.90
ETH 3439.10
USDT 1.00
SBD 2.59