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)
    
  • 相关阅读:
    HDU 5392 Infoplane in Tina Town
    HDU 2206 IP的计算(字符串处理)
    线程的条件变量实例
    CentOS安装配置Samba
    PO订单审批拒绝API
    【Java集合源代码剖析】Hashtable源代码剖析
    magento megatron主题加入中文
    递归系列2(字符串翻转,12345翻转)
    机器学习之&amp;&amp;Andrew Ng课程复习--- 聚类——Clustering
    JSP基础
  • 原文地址:https://www.cnblogs.com/hghua/p/13142140.html
Copyright © 2011-2022 走看看