当前位置: 首页 > 知识库问答 >
问题:

转储到JSON添加额外的双引号和引号转义

刘野
2023-03-14

我正在用Python工具检索Twitter数据,并将这些数据以JSON格式转储到我的磁盘上。我注意到用双引号括起来的tweet的整个数据字符串的意外转义。此外,实际JSON格式的所有双引号都用反斜杠转义。

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文件时,意外的转义会导致问题。

共有1个答案

红智鑫
2023-03-14

您正在对JSON字符串进行双重编码。data已经是一个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')
 类似资料:
  • 问题内容: 我正在使用Python工具检索Twitter数据,并将其以JSON格式转储到磁盘中。我注意到一条推文用双引号引起了整个数据字符串的意外转义。此外,实际JSON格式的所有双引号都以反斜杠转义。 他们看起来像这样: “ {\” created_at \“:\”周五8月8日11:04:40 +0000 2014 \“,\” id \“:497699913925292032, 如何避免这种情况

  • 问题内容: 我正在使用Python工具检索Twitter数据,并将其以JSON格式转储到磁盘中。我注意到,用双引号引起的一条推文意外地转义了整个数据字符串。此外,实际JSON格式的所有双引号都以反斜杠转义。 他们看起来像这样: “ {\” created_at \“:\”星期五8月8日11:04:40 +0000 2014 \“,\” id \“:497699913925292032, 如何避免这

  • 问题内容: 我有一个正在编写的脚本,用于将某些字段移至新的数据库,例如 但是如您所见,由于单引号和双引号,查询每次都会中断,是否有解决此问题的方法,例如herdok或类似的东西 问题答案: 为此而制作的。 PHP:mysql_real_escape_string

  • 我正在使用opencsv读取csv文件。有时csv文件中包含单引号或双引号。如何读取它们而不更改csv文件本身中的数据。 现在,如果我用两个单引号替换一个单引号,它工作正常,与双引号相同,用两个替换单个引号,它的工作原理。但我不想碰源文件。 要访问的代码如下: 这样做的结果是跳过下一行(也包含双引号),插入所有奇数行,跳过偶数行 提前谢谢

  • 问题内容: 这是适合此描述的命令行示例: 我已经尝试过'(不转义),URL编码(在另一端没有urldecoded!)和”(引号消失!),但没有成功。 问题答案: 如果您将“替换为Unicode编码的”(\ u0027),则可以使用: 奇怪,但是值得知道!

  • 问题内容: 如果JSON字符串如下,如何转义双引号? 我想对值 TEST中 的次级双引号进行转义。 我已经尝试了以下方法,但是它不起作用。 我想念什么? 问题答案: 它应该是: 首先,我将外部引号更改为单引号,因此它们不会与内部引号冲突。然后,我将反斜杠放在最里面的引号之前,以使其转义。而且我避开了反斜杠,以便按字面意义对待它。 使用JSON函数可以获得相同的结果: