1

当我在网上抓取网站并存储输出时,我观察到我的数字数据正在被某种乱码数据所取代。我不知道该怎么办。

json.dumps(lst)
with open('data.json', 'w') as f:
json.dump(lst , f,indent=4)

这就是我存储数据的方式

[
{
    "product_title": "Skybags Brat Black 46 Cms Casual Backpack",
    "MRP": "\u20b92,010.00",
    "Discounted_price": "\u20b9969.00"
},
[

这就是我数据的样子

更新 :

json.dumps(lst, ensure_ascii=False)添加到我的代码后遇到此错误

4

2 回答 2

2

这不是胡说八道。它是一个 Unicode 字符。你可以ensure_ascii=Falsejson.dumps()

import json
l = [
{
    "product_title": "Skybags Brat Black 46 Cms Casual Backpack",
    "MRP": "\u20b92,010.00",
    "Discounted_price": "\u20b9969.00"
    }
]

x = json.loads(json.dumps(l, ensure_ascii=False))
print(x)
[
{
'product_title': 'Skybags Brat Black 46 Cms Casual Backpack',
 'MRP': '₹2,010.00', 
'Discounted_price': '₹969.00'
}
]

将数据按原样写入文件。用这个

with open('data.json', 'w', encoding='utf-8') as f:
    json.dump(lst , f,indent=4,ensure_ascii=False)
于 2021-08-01T12:17:38.393 回答
0

那是因为 json.dump 始终读取为确保 ascii 您可以更改json.dump(lst , f,indent=4)json.dump(lst , f,indent=4, ensure_ascii=False)

于 2021-08-01T12:19:10.017 回答