`

python的json解析函数不支持单引号字符串

阅读更多

使用python标准库的json解析函数json.loads是不能使用单引号引用的json字符串,示例如下:

 

改用双引号,或者在loads之前先调用json.dumps(a)也可以。

 

 

>>> a = "{'aa':'dd','dd':'df'}"
>>> import json
>>> b = json.loads(a)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib64/python2.6/json/__init__.py", line 307, in loads
    return _default_decoder.decode(s)
  File "/usr/lib64/python2.6/json/decoder.py", line 319, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "/usr/lib64/python2.6/json/decoder.py", line 336, in raw_decode
    obj, end = self._scanner.iterscan(s, **kw).next()
  File "/usr/lib64/python2.6/json/scanner.py", line 55, in iterscan
    rval, next_pos = action(m, context)
  File "/usr/lib64/python2.6/json/decoder.py", line 171, in JSONObject
    raise ValueError(errmsg("Expecting property name", s, end))
ValueError: Expecting property name: line 1 column 1 (char 1)
>>> a = '{"aa":"asdf","dd":"dfads"}
  File "<stdin>", line 1
    a = '{"aa":"asdf","dd":"dfads"}
                                  ^
SyntaxError: EOL while scanning string literal
>>> a = '{"aa":"asdf","dd":"dfads"}'
>>> b = json.loads(a)
>>> b
>>> {u'aa': u'asdf', u'dd': u'dfads'}

 

 

0
1
分享到:
评论

相关推荐

    python json.loads兼容单引号数据的方法

    因此,当你尝试使用`json.loads()`函数解析包含单引号的字符串时,会抛出`json.decoder.JSONDecodeError`错误。 在给定的描述中,提到了一个解决此问题的方法,即通过先使用`eval()`函数转换数据,然后再用`json....

    JSON的封装和解析

    2. **字符串与引号**:JSON中的字符串必须用双引号`"`包裹,而不是JavaScript中的单引号`'`。 3. **转义字符**:JSON字符串支持常见的转义字符,如`\n`代表换行,`\t`代表制表符。 4. **数据类型**:JSON支持以下...

    函数 字符串.zip

    2. **创建**:在Python中,可以使用单引号或双引号创建字符串。在C++或Java中,通常使用`std::string`或`String`类。 3. **操作**:字符串支持多种操作,包括连接(concatenation)、截取(substring)、查找...

    Python对象转JSON字符串的方法

    - JSON字符串中所有的字符串都必须是双引号包围的,Python字符串默认是单引号,但在转换时`json.dumps()`会自动处理。 了解了这些基础知识后,你可以轻松地在Python项目中将自定义对象转换为JSON,以便于数据的...

    python中解析json格式文件的方法示例

    在解码过程中,JSON字符串被解析成一个Python字典,其中的键值对保持不变。然而,由于JSON格式不保留字典的顺序,因此解码后的字典顺序可能会与原始JSON字符串中的顺序不同。 ### 常见问题及解决方法 在处理JSON时...

    Python处理json字符串转化为字典的简单实现

    JSON字符串是用于在网络上传输数据的一种常见方式,而将JSON字符串转化为Python中的字典则是数据解析过程中的重要步骤。 在Python中,我们可以使用内置的`json`模块来处理JSON数据。`json`模块提供了两个主要的方法...

    json C语言 接口函数

    - **值**(Value):可以是字符串(由双引号包围的Unicode字符集合)、数值、布尔值(`true` 或 `false`)、`null`、对象或数组。这些结构可以互相嵌套。 #### 三、JSON库函数说明 `json-c`库提供了一系列的API...

    python猜数字游戏-12-字符串总结.ev4.rar

    字符串可以使用单引号或双引号创建,例如:"Hello, World!" 或 'Hello, World!'。 在Python中,有多种操作字符串的方法: 1. **字符串连接**:可以使用加号(+)将两个或更多字符串连接起来,如 "Hello," + " ...

    python干货来了,离成功就差它了,字符串章

    字符串在Python中是非常重要的,它们可以用于处理和展示文本信息,如打印消息、读写文件、解析和生成XML或JSON数据等。理解并熟练运用字符串格式化以及各种操作,对于Python程序员来说至关重要,无论是初学者还是...

    第04节课-字符串、字典、列表.zip

    我们可以使用单引号或双引号来创建字符串,例如:"Hello, world!" 或 'Python编程'。字符串支持多种操作,如连接(+)、查找(find)、替换(replace)以及切片(slicing)等。 接下来,我们讨论字典(Dictionary)...

    python将字符串转换成json的方法小结

    这种方法虽然可以处理单引号的情况,但需要注意的是,`eval()`执行的字符串必须是有效的Python表达式,并且存在安全风险,不建议在未知来源的字符串上使用。 **潜在问题及解决方案:** 尽管`eval()`函数可以解决单...

    json解析大全

    其中,字符串必须用双引号括起来,而JavaScript中的单引号不被允许。 **2. JSON语法** - **对象(Object)**: 对象由零个或多个键值对构成,每个键值对之间用逗号分隔,整个对象用花括号{}包围。键(key)是字符串...

    String-calibration-procedures.rar_字符串

    在Python中,`json.loads()`函数可将JSON格式的字符串转换为Python对象,而`json.dumps()`则反之。 7. XML/HTML解析: 在处理XML或HTML字符串时,我们可能需要将它们转换为相应的文档对象模型(DOM),以便进一步...

    字符串考试.zip

    7. **字符串性能**:由于字符串不可变,频繁的修改操作(如拼接)可能导致效率问题。在某些情况下,使用字符串缓冲区或列表操作后再转换为字符串能提高性能。 8. **字符串比较**:根据编程语言,字符串比较可能是...

    字符串.rar

    - 字符串通常是由单引号或双引号包围的一串字符,如`"Hello, World!"`或`'你好,世界!'`。 - 在某些语言中,字符串可以是Unicode编码,支持多语言字符,例如中文、日文、希腊文等。 2. **字符串的创建与初始化**...

    python数据封装json格式数据

    同时,json模块不支持单引号,所以在编码时应注意使用双引号来定义键和字符串值。 在实际应用中,使用json模块不仅可以进行简单的数据封装和解析,还可以处理更复杂的数据结构,并且能够有效地解决数据交互中遇到的...

    json转化数组

    将JSON转化为数组主要涉及到JSON.parse()函数,该函数可以将JSON字符串解析成JavaScript值。例如,上面的JSON数据如果以字符串形式存在,我们可以这样转化: ```javascript let jsonString = '[{"name": "Alice", ...

    快速解析json

    3. **字符串(String)**: 用双引号 `" "` 括起的字符序列,支持Unicode字符。 4. **数字(Number)**: 可以是整数或浮点数,可以带有正负号。 5. **布尔值(Boolean)**: `true` 或 `false`。 6. **null**: 单独的 ...

    浅析Python 引号、注释、字符串

    Python3.6.3 json==2.0.9 win10.0.17134 字符串 1.不可变类型,可迭代对象,有序(可索引、切片) 2. 用引号引起来表示(见 引号) 3.内部 `\` 表示转义,引号前面加 `r` 禁用...1.json模块被反序列化的字符串 内部

    JSON深度详解及org.json库详细剖析

    例如,JSON字符串必须用双引号包围,而JavaScript则允许单引号。此外,JSON不支持注释,也不支持JavaScript中的函数和正则表达式。 `org.json`库是Java平台上的一个开源库,主要用于处理JSON数据。这个库提供了丰富...

Global site tag (gtag.js) - Google Analytics