JSON 中的无效字符

Posted

技术标签:

【中文标题】JSON 中的无效字符【英文标题】:Invalid characters in JSON 【发布时间】:2019-08-02 19:39:20 【问题描述】:

我有一个带有字符串格式的结构类型数组的 JSON。当我尝试在 json 文件中写入相同内容时出现以下错误。我使用此输出文件进行架构验证,并因特殊字符而导致失败。

from pyspark.sql import Row
from pyspark.sql import DataFrame
from pyspark.sql.types import * 
import pandas as pd

jsondata1 = '"activity":["activity":"test","activityValue":"1","activity":"test","activityValue":"1"]'
my_automatic_schema = json_schema.dumps(jsondata1)
my_automatic_schema

atoDF = sqlContext.read.json(sc.parallelize([my_automatic_schema]))
atoDF.write.format("json").save("mnt//Users/name/test3.json")

我期待以下输出: '"activity": ["activityValue": "str", "activity": "str", "..."]'

并在我的 JSON 中获得以下输出 "activity":["\"activityValue\":\"str\",\"activity\":\"str\"","..."]

请帮我提供一个关于如何去除我的输出文件中的特殊字符的解决方案

【问题讨论】:

不关注...你的 json 是一个字符串还是一堆 json 文件? 【参考方案1】:

尝试使用这样的原始字符串:

jsondata1 = r'"activity":["activity":"test","activityValue":"1","activity":"test","activityValue":"1"]'

【讨论】:

以上是关于JSON 中的无效字符的主要内容,如果未能解决你的问题,请参考以下文章

如何解决此错误:词法错误:json 文本中的无效字符。?

在播放框架 1.2.5 中使用 await/job 后 JSON 消息中的无效字符

修复 SQL 中的无效 json

JSON 序列化错误“字符 0 处的值无效

使用 Alamofire 快速写入 JSON 中的***类型无效

JSON 写入错误中的类型无效,尝试通过 JSON 将自定义类发送到 .NET Web 服务