【问题标题】:How to parse a text/JavaScript如何解析文本/JavaScript
【发布时间】:2020-01-17 04:26:03
【问题描述】:

大家好,我正在尝试从以下文本/JavaScript 中提取一些内容:

var item_stock = {"colors": [{"color_code": "1","color_name": "BLACK","color_swatch": "/apis/image/crop?file_name=%2Fphoto%2F2019aw%2F19-04969%2Fs-19-04969_1-1.jpg&width=26&height=26","color_proper": "3,600","color_proper_usd": "33.48","color_proper_eur": "30.24","color_sale": "","color_sale_usd": "","color_sale_eur": "","color_percent": "","html_color": "","image_url": "","stock":  "0","sizes": [{"goods_id": "821","size_code": "OS","size_name": "23-25cm","stock": 0,"size_proper": "3,600","size_proper_usd": "33.48","size_proper_eur": "30.24","size_sale": "","size_sale_usd": "","size_sale_eur": "","size_percent": "","in_sales_flag": "1","stock_request_flag": "","restock_request_flag": 0,"coming_soon_flag": "0",},],"images": "<img src=/photo/2019aw/19-04969/s-19-04969_1-1.jpg>",},{"color_code": "101","color_name": "WHITE","color_swatch": "/apis/image/crop?file_name=%2Fphoto%2F2019aw%2F19-04969%2Fs-19-04969_101-1.jpg&width=26&height=26","color_proper": "3,600","color_proper_usd": "33.48","color_proper_eur": "30.24","color_sale": "","color_sale_usd": "","color_sale_eur": "","color_percent": "","html_color": "","image_url": "","stock":  "3","sizes": [{"goods_id": "822","size_code": "OS","size_name": "23-25cm","stock": 3,"size_proper": "3,600","size_proper_usd": "33.48","size_proper_eur": "30.24","size_sale": "","size_sale_usd": "","size_sale_eur": "","size_percent": "","in_sales_flag": "1","stock_request_flag": "","restock_request_flag": 0,"coming_soon_flag": "0",},],"images": "<img src=/photo/2019aw/19-04969/s-19-04969_101-1.jpg>",},]};

我正在尝试打印“color_name”:“BLACK”和“size_name”:“23-25cm”

这是我的代码:

js = soup.find_all('script', {'type': 'text/javascript'})[15]
js = json.loads(str(js).split('var item_stock = ')[1]).split('colors: ')[1].split('sizes: ')[1]
for size in js:
    sizee = str(size).split("size_name")[1].split(":")[1]
    print(sizee)
’’’

【问题讨论】:

标签: javascript python json beautifulsoup


【解决方案1】:
import json

js = """var item_stock = {"colors": [{"color_code": "1","color_name": "BLACK","color_swatch": "/apis/image/crop?file_name=%2Fphoto%2F2019aw%2F19-04969%2Fs-19-04969_1-1.jpg&width=26&height=26","color_proper": "3,600","color_proper_usd": "33.48","color_proper_eur": "30.24","color_sale": "","color_sale_usd": "","color_sale_eur": "","color_percent": "","html_color": "","image_url": "","stock":  "0","sizes": [{"goods_id": "821","size_code": "OS","size_name": "23-25cm","stock": 0,"size_proper": "3,600","size_proper_usd": "33.48","size_proper_eur": "30.24","size_sale": "","size_sale_usd": "","size_sale_eur": "","size_percent": "","in_sales_flag": "1","stock_request_flag": "","restock_request_flag": 0,"coming_soon_flag": "0",},],"images": "<img src=/photo/2019aw/19-04969/s-19-04969_1-1.jpg>",},{"color_code": "101","color_name": "WHITE","color_swatch": "/apis/image/crop?file_name=%2Fphoto%2F2019aw%2F19-04969%2Fs-19-04969_101-1.jpg&width=26&height=26","color_proper": "3,600","color_proper_usd": "33.48","color_proper_eur": "30.24","color_sale": "","color_sale_usd": "","color_sale_eur": "","color_percent": "","html_color": "","image_url": "","stock":  "3","sizes": [{"goods_id": "822","size_code": "OS","size_name": "23-25cm","stock": 3,"size_proper": "3,600","size_proper_usd": "33.48","size_proper_eur": "30.24","size_sale": "","size_sale_usd": "","size_sale_eur": "","size_percent": "","in_sales_flag": "1","stock_request_flag": "","restock_request_flag": 0,"coming_soon_flag": "0",},],"images": "<img src=/photo/2019aw/19-04969/s-19-04969_101-1.jpg>",},]};"""

# format the string so it is valid json.
js = js.replace('var item_stock = ', '').replace(',}', '}').replace(',]', ']')[:-1]

# load the json
obj = json.loads(js)

# iterate on the colors list
for color in obj['colors']:
    print(f"Color : {color['color_name']}")

    for size in color['sizes']:
        print(f"\t - size : {size['size_name']}")

""" Output :
Color : BLACK
     - size : 23-25cm
Color : WHITE
     - size : 23-25cm
"""

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多