当前位置: 首页 > 面试题库 >

转储至JSON会添加其他双引号和转义引号

长孙淳
2023-03-14
问题内容

我正在使用Python工具检索Twitter数据,并将其以JSON格式转储到磁盘中。我注意到,用双引号引起的一条推文意外地转义了整个数据字符串。此外,实际JSON格式的所有双引号都以反斜杠转义。

他们看起来像这样:

“ {\” created_at \“:\”星期五8月8日11:04:40 +0000 2014 \“,\” id
\“:497699913925292032,

如何避免这种情况?它应该是:

{“ created_at”:“ 2014年8月8日星期五11:04:40 +0000” .....

我的文件输出代码如下所示:

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字符串进行双重编码。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格式转储到我的磁盘上。我注意到用双引号括起来的tweet的整个数据字符串的意外转义。此外,实际JSON格式的所有双引号都用反斜杠转义。 在稍后的处理步骤中读取JSON文件时,意外的转义会导致问题。

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

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

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

  • 问题内容: 我正在尝试显示双引号,但它显示的是反斜杠之一: 在html中呈现时,显示为。正确的方法是什么? 问题答案: 试试这个: (在引号前只需一个反斜杠())。