HJSON:可注释、更简洁易用的JSON用户接口及其在Python中的使用

这篇具有很好参考价值的文章主要介绍了HJSON:可注释、更简洁易用的JSON用户接口及其在Python中的使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

HJSON:可注释、更简洁易用的JSON用户接口及其在Python中的使用

JSON是现代常用的一种数据储存和表示格式,具有良好的阅读和编写体验。在Python语言中可以和字典、列表等数据格式完美兼容。

在现在的RESTful网络通信中,json被用来作为数据载体返回服务器的相应数据,相比于xml格式它具有更好的信噪比,一定程度上降低了网络的压力。

此外,JSON的另一个作用是作为配置文件使用,不过当使用json作为配置文件时,其有一个问题,就是json中不允许使用注释等额外的不符合json语法格式的内容(当然我们可以选择其他的如ini, yaml等格式来使用)。

HJSON是一种可以添加注释,而且更加简洁的JSON表示,支持在.NET、JAVA、Python、GO等语言中使用。Hjson, a user interface for JSON

1. 相比于JSON,Hjson有以下几个特点:

  1. 不会因为缺少逗号而出现语法错误,只要把每个键值对写在新的一行中即可。

    {
    first: 1
    second: 2
    }
    
  2. 可以添加注释:

    Hjson支持使用单行注释:#//, 和多行注释 /**/

    Python中的三引号的多行注释格式在Hjson中用来表示多行字符串。

    {
    # hash style comments
    # (because it's just one character)
    
    // line style comments
    // (because it's like C/JavaScript/...)
    
    /* block style comments because
       it allows you to comment out a block */
    
    # Everything you do in comments,
    # stays in comments ;-}
    }
    
  3. 对象的key可以不使用双引号来指定,编写时更加方便。

    {
    # specify rate in requests/second
    rate: 1000
    }
    
  4. 对象的value如果是单行的字符串,也可以不添加引号

    {
    JSON: "a string"
    
    Hjson: a string
    
    # notice, no escape necessary:
    RegEx: \s+
    }
    
  5. 可以书写多行字符串,方便阅读,使用三引号来表示:

    {
    md:
      '''
      First line.
      Second line.
        This line is indented by two spaces.
      '''
    }
    
  6. 标点符号,空格和退格符:

    JSON 和 Hjson 使用字符{}[],:作为标点符号来定义数据的结构。

    标点符号和空格不能用在无引号的键中,也不能用作无引号字符串的第一个字符。在这种情况下,我们就需要使用引号来表示含有标点符号的字符串。

    反斜杠只用作引号字符串中的转义字符。

    {
    "key name": "{ sample }"
    "{}": " spaces at the start/end "
    this: is OK though: {}[],:
    }
    

2. 在Python中使用Hjson:

Hjson为Python 2.5+ 和Python3.3+ 版本提供了支持,使用pip install hjson即可安装使用。

安装后不仅可以作为Python第三方库使用,它还提供了在命令行中使用的hjson命令:

Usage:
  hjson [options]
  hjson [options] <input>
  hjson (-h | --help)
  hjson (-V | --version)

Options:
  -h --help     Show this screen.
  -j            Output as formatted JSON.
  -c            Output as JSON.
  -V --version  Show version.

使用时可以将字符串格式化为hjson或对内容进行格式校验: echo '{"json":"obj"}' | hjson

在Python中使用时和json库的操作类似,非常的简单:

首先导入hjson库:import hjson

  1. 读取字符串hjson:

    text = """{
    foo: a
    bar: 1
    }"""
    
    h = hjson.loads(text)
    print(h)  # OrderedDict([('foo', 'a'), ('bar', 1)])
    

    如果想读取hjson文件内容可以使用 hjson.load()方法。

  2. 保存数据为hjson:

    hjson.dumps({'foo': 'text', 'bar': (1, 2)})
    

    执行后可将Python对象内容保存为:

    {
    foo: text
    bar:
    [
      1
      2
    ]
    }
    

    如果想将Python对象以Hjson格式保存在文件中可以使用 hjson.dump() 方法。

  3. 将hjson数据内容编码为JSON:

    hjson也可以去除掉hjson的特性将数据保存在为JSON格式:

    hjson.dumpsJSON(['foo', {'bar': ('baz', None, 1.0, 2)}])
    # '["foo", {"bar": ["baz", null, 1.0, 2]}]'
    

    将其保存在JSON文件中则可以使用 hjson.dumpJSON() 方法。

更多hjson库的API可以参考:https://hjson.github.io/hjson-py/ 。文章来源地址https://www.toymoban.com/news/detail-408341.html

到了这里,关于HJSON:可注释、更简洁易用的JSON用户接口及其在Python中的使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 用户界面设计和评估:如何设计具有吸引力、易用性和可靠性的用户界面?

    作者:禅与计算机程序设计艺术 用户界面(User Interface)是一个给用户提供服务或者产品的系统界面,通过人机交互、信息呈现、文字表达、图形符号等表现形式进行沟通,帮助用户更好的使用产品或服务。它对于提升企业的品牌影响力、增加客户黏性、改善用户体验、降低

    2024年02月13日
    浏览(41)
  • 基于Python的接口自动化-JSON模块的操作

    目录 引言 一、JSON是啥? 二、JSON的有效数据类型 三、Python JSON库的使用 结语         在使用Python进行接口自动化测试脚本时,一般都是脚本只写接口测试逻辑实现, 而执行脚本时需要的测试用例数据都是写入excel、数据库或者指定的配置文件中,脚本通过读取这些测试数据

    2024年02月08日
    浏览(52)
  • 头歌:Python开发技术—文件和异常3( 答案+详细注释)第1关:读取文件内容+第2关:素数写入文件+第3关:输出文件目录+第4关:读写json文件

    自己敲一遍这个代码,注释我写的超级详细,一定可以明白! 内容原创,请勿转载  知识点学习参考: 1.基本读写常用指令: 一文搞懂Python文件读写 - 知乎 (zhihu.com) 2.文件遍历知识总结:  (205条消息) python遍历文件夹下的所有文件_python遍历d盘下面所有文件(排除掉文件夹)

    2024年02月05日
    浏览(250)
  • js json 生成 字段注释

    js json 生成 字段注释 D:projtoolmy_util_privatejsObjDocGen.js

    2024年01月23日
    浏览(42)
  • golang之json注释处理

    json 作为现代比较常用的文本格式,本身是不支持注释的,因为它的设计初衷是作为一种轻量级数据交换格式,只需要包含数据本身,而不应该包含注释或者其他无关的信息。 但是有时json内字段较多,想写一些注释说明,这些都是编程工具或者编辑器特有的功能,常见的注释

    2024年02月17日
    浏览(57)
  • YApi-高效、易用、功能强大的可视化接口管理平台——(一)使用 Docker 本地部署

    本内容以虚拟机【系统:Centos7】为例,云服务器步骤相同。使用Docker 的方式搭建 YApi,拉取 MongoDB 镜像和 YApi 镜像即可。 安装 yum 包更新到最新: 安装需要的软件包,yum-util 提供 yum-config-manager 功能,另外两个是 devicemapper 驱动依赖: 设置 yum 源为阿里云: 安装 Docker 社区版

    2024年02月13日
    浏览(50)
  • YApi-高效、易用、功能强大的可视化接口管理平台——(三)YApi 项目管理

    点击右上角的 + 新建项目,进入新建项目页面: 完善项目信息,指定项目所属分组,点击【+创建项目】: 注:权限公开私有可以在项目创建之后进行设置。 查看创建好的项目: 在项目页点击上方的 设置 Tab 进入项目设置面板,这个面板涵盖了项目的所有配置: 在【项目配

    2024年02月13日
    浏览(44)
  • PostgreSQL 简洁、使用、正排索引与倒排索引、空间搜索、用户与角色

    PostgreSQL 是一个免费的对象-关系数据库服务器(ORDBMS),在灵活的BSD许可证下发行。 PostgreSQL 9.0 :支持64位windows系统,异步流数据复制、Hot Standby; 生产环境主流的版本是PostgreSQL 12 BSD协议:可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布。

    2024年02月15日
    浏览(54)
  • postman中为JSON数据写注释信息

    在使用postman进行接口测试的时候,总是会碰到一个问题,请求参数如果是 json 格式时是不支持注释的,会将注释也一并发送出去,后端接受后可能会导致数据不正确。 使用正则匹配的方法,利用Pre-request Script(前置脚本)预处理发送出去的JSON格式信息 方法代码如下:

    2024年02月16日
    浏览(39)
  • java与es8实战之六:用JSON创建请求对象(比builder pattern更加直观简洁)

    这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本文是《java与es8实战》系列的第六篇,经过前面的实战,咱们初步掌握了一些Java对ES的基本操作,通过发送请求对象(例如CreateIndexResponse)到ES服务端,达到操作ES的目的,但是细心的您可能发现了:

    2024年02月10日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包