python中字符串类型json操作的注意事项

python操作json的方法有

json.dumps——将json对象(字典)转换为字符串对象

json.loads——将字符串对象转换为json对象(字典)

如果定义json对象

jsonstring1={"results":[{"id":"1","name":"\u9ed8\u8ba4\u5206\u7ec4","policy":"4","timer_scan_setting":"{\"last\":\"10.29.13\",\"setting\":\"fulldisk\",\"type\":\"day\",\"hour\":\"13\"}"},
{"id":"2","name":"\u6d4b\u8bd5\u7684","policy":"1","timer_scan_setting":"{\"last\":\"10.29.15\",\"setting\":\"fulldisk\",\"type\":\"day\",\"hour\":\"15\"}"},{"id":"4","name":"\u4ea7\u54c1\u7ec4","policy":"3","timer_scan_setting":"{\"last\":\"10.8.15\",\"setting\":\"disable\"}"}]}

可以直接按json操作,比如

print jsonstring1.keys()
print jsonstring1['results'][0]['policy']

也可以转个360度再操作

jsonstring1=json.dumps(jsonstring1)
jsonstring1=json.loads(jsonstring1)
print jsonstring1.keys()
print jsonstring1['results'][0]['policy']

但是如果定义字符串对象就要小心了

jsonstring2='''{"results":[{"id":"1","name":"\u9ed8\u8ba4\u5206\u7ec4","policy":"4","timer_scan_setting":"{\"last\":\"10.29.13\",\"setting\":\"fulldisk\",\"type\":\"day\",\"hour\":\"13\"}"},
{"id":"2","name":"\u6d4b\u8bd5\u7684","policy":"1","timer_scan_setting":"{\"last\":\"10.29.15\",\"setting\":\"fulldisk\",\"type\":\"day\",\"hour\":\"15\"}"},{"id":"4","name":"\u4ea7\u54c1\u7ec4","policy":"3","timer_scan_setting":"{\"last\":\"10.8.15\",\"setting\":\"disable\"}"}]}'''

这个只是对上面的json对象加了三引号转为一个字符串,所以理论上可以直接loads之后就按json操作

json.loads(jsonstring2)

但是实际却报错了,原因是因为大括号前后的双引号没有去掉,网上很多在线的json格式化工具对于这些双引号不会报错,但是python会,而定义json对象时加了双引号操作却没报错,是因为不加里面的内容会被转义,所以千万不能完全相信网上的json格式校验工具。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对我们的支持。

(0)

相关推荐

  • Python实现复杂对象转JSON的方法示例

    本文实例讲述了Python实现复杂对象转JSON的方法.分享给大家供大家参考,具体如下: 在Python对于简单的对象转json还是比较简单的,如下: import json d = {'a': 'aaa', 'b': ['b1', 'b2', 'b3'], 'c': 100} json_str = json.dumps(d) print json_str 对于复杂对象,可以使用下面的方法来实现,比如: import json class Customer: def __init__(self,

  • Python3 处理JSON的实例详解

    Python3 处理JSON的实例详解 真的好简单,灰常简单 import os, io, sys, re, time, base64, json import webbrowser, urllib.request def main(): "main function" url = "http://m.weather.com.cn/data/101010100.html" stdout=urllib.request.urlopen(url) weatherInfo=

  • Python3.x对JSON的一些操作示例

    前言 本文主要给大家介绍了关于python3对JSON的一些操作,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 一.Dictionary 转为JSON 将dict转为JSON,这里利用包json import json aItem = {} aItem["id"] = "2203" aItem["title"] = "title" aItem["subTitle"] = "su

  • python将ansible配置转为json格式实例代码

    python将ansible配置转为json格式实例代码 ansible的配置文件举例如下,这种配置文件不利于在前端的展现,因此,我们用一段简单的代码将ansible的配置文件转为json格式的: [webserver] 192.168.204.70 192.168.204.71 [dbserver] 192.168.204.72 192.168.204.73 192.168.204.75 [proxy] 192.168.204.76 192.168.204.77 192.168.204.78

  • Python实现将Excel转换为json的方法示例

    本文实例讲述了Python实现将Excel转换为json的方法.分享给大家供大家参考,具体如下: #-*- encoding:utf-8 -*- import sys import locale import os.path import os import time import shutil import datetime import types import sqlite3 import pypyodbc import traceback import json import codec

  • python 读写中文json的实例详解

     python 读写中文json的实例详解 读写中文json 想要 读写中文json ,可以使用python中的 json 库可以对json进行操作.读入数据可以使用 json.load. f = file(path) data = json.load(f) json被载入到一个dict类型的object对象中. 使用 json.dump可以输出json.不过输出的文本并不是中文,而是转换为 utf-8的格式.此处需要: output = json.dump(jsonData,targetFil

  • python读写json文件的简单实现

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集. JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C.C++.Java.JavaScript.Perl.Python等).这些特性使JSON成为理想的数据交换语言.易于人阅读和编写,同时也易于机器解析和生成(一般用于提升网络传输速率). JSON在python中分别由list和dict组成. 这是用于序列化的两个模块: json: 用于

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

    前言 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集. JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等).这些特性使JSON成为理想的数据交换语言.易于人阅读和编写,同时也易于机器解析和生成. 本文主要介

  • python中字符串类型json操作的注意事项

    python操作json的方法有 json.dumps--将json对象(字典)转换为字符串对象 json.loads--将字符串对象转换为json对象(字典) 如果定义json对象 jsonstring1={"results":[{"id":"1","name":"\u9ed8\u8ba4\u5206\u7ec4","policy":"4","timer_

  • 关于Python中字符串的各种操作

    目录 1.字符串拼接 2.字符串截取(字符串切片) 3.分割字符串 4.合并字符串 5.统计字符串出现的次数 6.检测字符串是否包含某子串 7.字符串对齐方法 8.检索字符串是否以指定字符串开头(startswith()) 9.检索字符串是否以指定字符串结尾(endswith()) 10.字符串大小写转换(3种)函数及用法 11.去除字符串中空格(删除特殊字符)的3种方法 12.encode()和decode()方法:字符串编码转换 13.序列化和反序列化 1.字符串拼接 通过+运算符 现有字符

  • python中字符串的常见操作总结(一)

    目录 前言 python中的对象 什么是对象? 字符串的capitalize()函数 capitalize()的功能 capitalize()的用法 字符串的小写内置函数 字符串的upper()函数 字符串的swapcase()函数 字符串的zfill()函数 字符串中的count()函数 字符串中startswith()与endswith()函数 字符串中的find()与index()函数 字符串中的strip()函数 字符串中的replace()函数 字符串中返回bool类型的函数 issp

  •  python中字符串的常见操作总结(二)

    目录 字符串的编码格式 什么是编码格式? 常见的编码格式 字符串格式化 什么是字符串格式化? 格式化字符串的使用场景 第一种格式化方法—% 第二种格式化方法–格式化函数format() 第三种格式化方法–f-strings(python3.6及之后的版本支持) 详解对不同数据类型的格式化 format() 不常用的格式 字符串的转义字符 python中的转义字符 将转义字符无效化 字符串的编码格式 什么是编码格式? 通俗来讲,编码格式就是编码的规则 在脚本的开头指定编码格式,来告诉操作系统根据什

  • Python中字符串的常见操作技巧总结

    本文实例总结了Python中字符串的常见操作技巧.分享给大家供大家参考,具体如下: 反转一个字符串 >>> S = 'abcdefghijklmnop' >>> S[::-1] 'ponmlkjihgfedcba' 这种用法叫做three-limit slices 除此之外,还可以使用slice对象,例如 >>> 'spam'[slice(None, None, -1)] >>> unicode码与字符(single-characte

  • Python中xml和json格式相互转换操作示例

    本文实例讲述了Python中xml和json格式相互转换操作.分享给大家供大家参考,具体如下: Python中xml和json格式是可以互转的,就像json格式转Python字典对象那样. xml格式和json格式互转用到的xmltodict库 安装xmltodict库 C:\Users\Administrator>pip3 install xmltodict Collecting xmltodict   Downloading xmltodict-0.11.0-py2.py3-none-any

  • Python中字符串的基础介绍及常用操作总结

    目录 1.字符串的介绍 2.字符串的下标 3.字符串切片 4.字符串find()操作 5.字符串index()操作 6.字符串count()操作 7.字符串replace()操作 8.字符串split()操作 9.字符串startswith()操作 10.字符串endswith()操作 11.字符串upper()操作 12.字符串lower()操作 13.字符串title()操作 14.字符串capitalize()操作 15.字符串strip()操作 16.字符串rfind()操作 17.字符

  • python pandas中DataFrame类型数据操作函数的方法

    python数据分析工具pandas中DataFrame和Series作为主要的数据结构. 本文主要是介绍如何对DataFrame数据进行操作并结合一个实例测试操作函数. 1)查看DataFrame数据及属性 df_obj = DataFrame() #创建DataFrame对象 df_obj.dtypes #查看各行的数据格式 df_obj['列名'].astype(int)#转换某列的数据类型 df_obj.head() #查看前几行的数据,默认前5行 df_obj.tail() #查看后几

  • python中字符串最常用的十三个处理操作记录

    前言 博主学习python有个几年了,对于python的掌握越来越深,很多时候,希望自己能掌握python越来越多的知识,但是,也意识很多时候熟练基础的东西,比了解更多的知识更重要. 今天,我们来讲讲python字符串处理 首先,我们先定义两个字符串,然后后面我们会对其进行一系列操作示范 str1="sadf AVD" str2="JIK dojfa kldfj" 1.把小写字母都转化为大写 print(str2.upper()) print(str1.upper(

  • 浅谈Python 集合(set)类型的操作——并交差

    阅读目录 •介绍 •基本操作 •函数操作 介绍 python的set是一个无序不重复元素集,基本功能包括关系测试和消除重复元素. 集合对象还支持并.交.差.对称差等. sets 支持 x in set. len(set).和 for x in set.作为一个无序的集合,sets不记录元素位置或者插入点.因此,sets不支持 indexing, slicing, 或其它类序列(sequence-like)的操作. 基本操作 >>> x = set("jihite")

随机推荐