繁体   English   中英

将数据转换成json格式

[英]convert data in json format

import enum
import requests
from bs4 import BeautifulSoup
import json
import pandas as pd 
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.3"
}
r = requests.get("https://www.fleetpride.com/parts/otr-brake-drum-otr1601b")
soup = BeautifulSoup(r.content, "html5lib")
raw_json = ""
for table_index,table in enumerate( soup.find_all("script")):
    if('CCRZ.detailData.jsonProductData = {"' in str(table)):
        x=str(table).split('CCRZ.detailData.jsonProductData = {"')
        raw_json = "{\""+str(x[-1]).split('};')[0]+"}"
        break
      
      
req_json = json.loads(raw_json)
# uri = req_json.keys()

print(req_json)

这是我运行代码时的输出显示:

在此处输入图像描述

我想要像json format的论文,如果可能的话,是否可以转换成这种格式,你能告诉我们如何转换成如下所示的 json 格式吗,我很感谢你:

{
    "mediaWrappers": {
        "Alternate Images": [{
                "uri": "https://www.fleetpride.com/imagesns/PDPF/OTR1601B-Webb copy.jpg",
                "mediaName": "https://www.fleetpride.com/imagesns/PDPF/OTR1601B-Webb copy.jpg",
                "sourceType": "URI",
                "URI": "https://www.fleetpride.com/imagesns/PDPF/OTR1601B-Webb copy.jpg",
                "startDate": "2018-05-23",
                "sequence": 2,
                "productMediaId": "OTR-OTR1601B-Alternate Images-2",
                "mediaType": "Alternate Images",
                "locale": "en_US",
                "endDate": "2099-12-31",
                "enabled": true,
                "altMessage": "OTR OTR OTR1601B",
                "sfdcName": "406524",
                "sfid": "a8B1W000000c4a1UAA",
                "product": "a8G1W000000Y7DfUAK"
            },
            

您可以在json.loads()之后添加以下代码。

with open("req_json.json", "w") as f:
    json.dump(req_json, f, indent=4)

两种输出都是 JSON 格式。 您正在寻找的是漂亮的打印。 阅读有关json.dumps()及其选项的信息。 您想要使用indent选项。

...
pretty = json.dumps(req_json, indent=4)
print(pretty)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM