json 如何在Python列表中为URL使用双引号

mznpcxlj  于 2023-05-02  发布在  Python
关注(0)|答案(1)|浏览(182)

我有一个代码,使最后一部分的URL所需的值。但我有问题。
完整的URL是:

https://api-mainnet.magiceden.dev/v2/mmm/pools?collectionSymbol=funkyacademy&limit=500&offset=0&filterOnSide=1&hideExpired=true&direction=1&field=5&attributesMode=1&attributes=[{'attributes':[{'traitType':'BODY1','value':'Boy1'}]}]

我的角色是:&attributes=...
代码中有'*some text*',但我需要"*some text*"
现在:&attributes=[{'attributes':[{'traitType':'BODY1','value':'Boy1'}]}]
需求:&attributes=[{'attributes':[{"traitType":"BODY1","value":"Boy1"}]}]
我的代码是:

all = task['One Value'].split(', ')
typee = task['One Type']
table = [
    {
        "attributes": []
    }
]
for val in all:
    ex = {
        "traitType": typee.replace(' ', '+'),
        "value": val.replace(' ', '+')
    }
    table[0]["attributes"].append(ex)

attributes=str(table).replace(' ', '')
print(self.POOLS_URL.format(collection_name=collection_name, offset=0, atr=attributes))

如何将“”更改为“”?

z4bn682m

z4bn682m1#

下一次发布一个独立的代码相关部分的例子会很有帮助。不清楚您是如何获得您向我们显示的URL的。从我在您的代码中看到的内容来看,您似乎使用了一个名为self.POOLS_URL的模板字符串,并使用来自attributes的值填充它。
现在直接回答你的问题很简单:在dict上调用str将使用单引号。它并不打算给予你有效的JSON,只是一个人类可读的表示。
您正在寻找的是json.dumps。该方法将值编码为有效的JSON,例如。例如,在它们应该在的地方加上双引号。
然而,我建议不要手工构建这样的URL。它很麻烦,而且容易出错,在大多数重要的情况下都应该避免。
您正在调用的API似乎有一个neat documentation page,其中包含示例代码,您可以依靠它来实现http.clientrequests(或它们覆盖的其他几种语言)中的http客户端逻辑。.)
从长远来看,这可能会为您节省一些不必要的麻烦。

相关问题