zoukankan      html  css  js  c++  java
  • str字符串与JSON对象的区别

    前言

    我们常用json文件存储数据,在写入文件前,通常使用json.dumps函数将python对象转化为字符串再写入文件。但是str函数也可以将字典、
    列表等转化为字符串,那么我们在写入json文件时可不可以不import json,直接用str来做呢?答案时不可以的,详见下面事例:
    1.当数据类型为str时:

    2.当数据类型为json对象时:

    从上面图片可以看出str字符串和json字符串不可以混合使用的,它们之间是有本质的区别:

    3.我们都知道,使用json.dumps的目的是将python对象转化为字符串,以存储到文件之中。之后需要数据的时候还要从文件中读取,再用json.loads转化为python对象,类似下面这个过程

    >>> m = ['a', 'b']
    >>> n = json.dumps(m)
    >>> n
    '["a", "b"]'
     
    -----存储入文件,读取文件-----
    >>> p = json.loads(n)
    >>> p.append('c')
    >>> p
    ['a', 'b', 'c']
    

    4.我们如果用str转化成的字符串,则无法再转化为python对象

    
    >>> m = ['a', 'b']
    >>> n = str(m)
    >>> n
    "['a', 'b']"
    >>> json.loads(n)
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "C:Program FilesAnaconda3libjson\__init__.py", line 319, in loads
        return _default_decoder.decode(s)
      File "C:Program FilesAnaconda3libjsondecoder.py", line 339, in decode
        obj, end = self.raw_decode(s, idx=_w(s, 0).end())
      File "C:Program FilesAnaconda3libjsondecoder.py", line 357, in raw_decode
        raise JSONDecodeError("Expecting value", s, err.value) from None
    json.decoder.JSONDecodeError: Expecting value: line 1 column 2 (char 1)
    
  • 相关阅读:
    zoj 2913 Bus Pass
    poj 2478 Farey Sequence
    zoj 1649 Rescue
    秒懂JavaScript HTML DOM 元素 (节点)
    看了就会的JS(JavaScript)addEventListener()
    秒懂javascript的原型(prototype)对象、原型链的前世今生
    构造函数用途及优缺点
    一文读懂 js(JavaScript)中call() 和 apply() 的用法
    js (JavaScript)函数声明的几种形式及用法
    JavaScript 代码规范
  • 原文地址:https://www.cnblogs.com/hghua/p/13142140.html
Copyright © 2011-2022 走看看