Python:Dump to Json添加了额外的双引号和转义引号

本文探讨了在使用Python处理Twitter数据并将其以JSON格式保存时遇到的双重编码问题。详细解释了如何避免在JSON字符串中出现不必要的转义字符,确保数据正确格式化,避免后续处理中的读取错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我使用 python工具检索Twitter数据,并将它们以JSon格式转储到我的磁盘.我注意到一个意想不到的转义整个数据字符串,一个tweet被包含在双引号中.此外,实际的Json格式的所有双引号都用反斜杠进行转义.

 

他们看起来像这样:

 

“{\”created_at\”:\”Fri Aug 08 11:04:40 +0000
2014\”,\”id\”:497699913925292032,

我该如何避免?它应该是:

 

{“created_at”:”Fri Aug 08 11:04:40 +0000 2014″ …..

我的退出代码如下所示:

 

with io.open('data'+self.timestamp+'.txt', 'a', encoding='utf-8') as f:
            f.write(unicode(json.dumps(data, ensure_ascii=False)))
            f.write(unicode('\n'))

意外的转义导致在稍后的处理步骤中在json文件中读取的问题.

您是双重编码JSON字符串.数据已经是JSON字符串,并且不需要再次编码:

 

 

>>> import json
>>> not_encoded = {"created_at":"Fri Aug 08 11:04:40 +0000 2014"}
>>> encoded_data = json.dumps(not_encoded)
>>> print encoded_data
{"created_at": "Fri Aug 08 11:04:40 +0000 2014"}
>>> double_encode = json.dumps(encoded_data)
>>> print double_encode
"{\"created_at\": \"Fri Aug 08 11:04:40 +0000 2014\"}"

只需将这些直接写入您的文件:

 

with open('data{}.txt'.format(self.timestamp), 'a') as f:
    f.write(data + '\n')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值