如何用变量的内容替换JSON字符串中的内容?

时间:2020-02-09 20:36:16

标签: python json

对不起,我对Web抓取和JSON还是很陌生,所以这似乎很愚蠢。 我试图将自己的变量添加到我从试图获取数据的网站上获得的请求有效负载中。最初,我的数据如下所示:

{"query":"{\n    viewer {\n      productTemplate(slug: \"yeezy-boost-350-v2-tailgate-fx4348\") {\n        id\n     etc...

我想用我的python变量替换slug:中提供的链接。我创建了一个for循环,并将json字符串嵌套在其中,这得到了许多不同的slug:值。我使用

抓取数据
import requests


r = requests.post(url2, headers=headers, json=data)
for i in r.json()["data"]["viewer"]["productTemplate"]["used_products_ex_goat_clean"]:
    print(i["price_cents"]) 

我尝试了许多不同的方法,用我自己的值替换the代码,最后一次尝试阅读:

(slug: slugquote)

slugquote较早输出\"yeezy-boost-350-v2-tailgate-fx4348\"

非常抱歉,我很肯定这对任何真正知道自己在做什么的人都没有意义/愚蠢,我已经尝试了我在python中知道的每种方法都将变量放入其中,许多不同的格式。

我最常见的错误是KeyError: 'data'。我99%确信这只是因为it没有指向正确的区域而找不到它。

编辑:我刚刚清理了完整的请求有效负载,将其缩小到一行。

 data = {"query":"{\n    viewer {\n      productTemplate(slug: \"yeezy-boost-350-v2-tailgate-fx4348\") {\n        used_products_ex_goat_clean {\n          id\n          slug\n          price_cents\n          size\n          is_instant_shippable\n          outer_picture\n}\n      }\n    }\n  }"}

谢谢您到目前为止的所有回答。这是我可以做的最小的有效负载,其中包含我需要的所有信息。我想在每一个不同的页面上抓取我的头条,所有有效载荷都包含能够使用上述结构的完全相同的结构。我的最终目标是能够将这些数据更改为

 data = {"query":"{\n    viewer {\n      productTemplate(slug: myVar) {\n        used_products_ex_goat_clean {\n          id\n          slug\n          price_cents\n          size\n          is_instant_shippable\n          outer_picture\n}\n      }\n    }\n  }"}

简化整个过程。甚至有可能在此源有效负载上执行此操作吗?我希望这有帮助。

0 个答案:

没有答案