跳转到主要内容

jq是一个轻量级且灵活的JSON处理器。

项目描述

此项目包含用于jq 1.7.1的Python绑定。

安装

在Linux和Mac OS X上为各种Python版本和架构构建了Wheel。在这些平台上,您应该能够使用常规pip install安装jq。

pip install jq

如果不可用Wheel,则构建jq 1.7.1的源代码。这需要

  • Autoreconf

  • 正常的C编译器工具链,如gcc和make。

  • libtool

  • Python头文件。

或者,在安装包时将环境变量JQPY_USE_SYSTEM_LIBS设置为1,以使用系统上可用的libjq和libonig版本,而不是构建它们。

Debian, Ubuntu或相关版本

如果使用Debian、Ubuntu或相关版本,则运行以下命令应足够

apt-get install autoconf automake build-essential libtool python-dev

Red Hat, Fedora, CentOS或相关版本

如果使用Red Hat、Fedora、CentOS或相关版本,则运行以下命令应足够

yum groupinstall "Development Tools"
yum install autoconf automake libtool python python-devel

Mac OS X

如果使用Mac OS X,您可能需要安装XcodeHomebrew。一旦安装了Homebrew,您可以使用以下命令安装剩余的依赖项

brew install autoconf automake libtool

使用方法

使用jq需要三个步骤

  1. 调用jq.compile()来编译jq程序。

  2. 在编译后的程序上调用输入方法以提供输入。

  3. 在结果上调用输出方法以检索输出。

例如:

import jq

assert jq.compile(".+5").input_value(42).first() == 47

输入方法:

调用 .input_value() 以提供有效的 JSON 值,例如来自 json.load 返回的值。

import jq

assert jq.compile(".").input_value(None).first() == None
assert jq.compile(".").input_value(42).first() == 42
assert jq.compile(".").input_value(0.42).first() == 0.42
assert jq.compile(".").input_value(True).first() == True
assert jq.compile(".").input_value("hello").first() == "hello"

调用 .input_values() 以提供多个有效的 JSON 值,例如来自 json.load 返回的值。

import jq

assert jq.compile(".+5").input_values([1, 2, 3]).all() == [6, 7, 8]

调用 .input_text() 以提供未解析的 JSON 文本。

import jq

assert jq.compile(".").input_text("null").first() == None
assert jq.compile(".").input_text("42").first() == 42
assert jq.compile(".").input_text("0.42").first() == 0.42
assert jq.compile(".").input_text("true").first() == True
assert jq.compile(".").input_text('"hello"').first() == "hello"
assert jq.compile(".").input_text("1\n2\n3").all() == [1, 2, 3]

slurp=True 传递给 .input_text() 以将整个输入读入数组。

import jq

assert jq.compile(".").input_text("1\n2\n3", slurp=True).first() == [1, 2, 3]

您还可以通过传递以下内容来调用较旧的 input() 方法:

  • 一个有效的 JSON 值,例如来自 json.load 返回的值,作为位置参数。

  • 未解析的 JSON 文本作为关键字参数 text

例如:

import jq

assert jq.compile(".").input("hello").first() == "hello"
assert jq.compile(".").input(text='"hello"').first() == "hello"

输出方法:

在结果上调用 first() 将使用给定的输入运行程序,并返回第一个输出元素。

import jq

assert jq.compile(".").input_value("hello").first() == "hello"
assert jq.compile("[.[]+1]").input_value([1, 2, 3]).first() == [2, 3, 4]
assert jq.compile(".[]+1").input_value([1, 2, 3]).first() == 2

调用 text() 而不是 first() 以将输出序列化为 JSON 文本。

assert jq.compile(".").input_value("42").text() == '"42"'

在调用 text() 时,如果有多个输出元素,则每个元素由单独的一行表示。

assert jq.compile(".[]").input_value([1, 2, 3]).text() == "1\n2\n3"

调用 all() 以获取列表中的所有输出元素。

assert jq.compile(".[]+1").input_value([1, 2, 3]).all() == [2, 3, 4]

调用 iter() 以获取迭代器中的所有输出元素。

iterator = iter(jq.compile(".[]+1").input_value([1, 2, 3]))
assert next(iterator, None) == 2
assert next(iterator, None) == 3
assert next(iterator, None) == 4
assert next(iterator, None) == None

参数:

使用带有 args 参数的 compile() 调用允许在程序中使用预定义变量。

program = jq.compile("$a + $b + .", args={"a": 100, "b": 20})
assert program.input_value(3).first() == 123

便利函数:

有便利函数可以在一次调用中获取程序和输入的输出。

assert jq.first(".[] + 1", [1, 2, 3]) == 2
assert jq.first(".[] + 1", text="[1, 2, 3]") == 2
assert jq.text(".[] + 1", [1, 2, 3]) == "2\n3\n4"
assert jq.all(".[] + 1", [1, 2, 3]) == [2, 3, 4]
assert list(jq.iter(".[] + 1", [1, 2, 3])) == [2, 3, 4]

原始程序字符串:

原始程序字符串作为编译程序上的 program_string 属性可用。

program = jq.compile(".")
assert program.program_string == "."

项目详情:


下载文件:

下载您平台上的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源分发:

jq-1.8.0.tar.gz (2.1 MB 查看哈希)

上传时间

构建版本

jq-1.8.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (424.1 kB 查看哈希)

上传时间 PyPy manylinux: glibc 2.17+ x86-64

jq-1.8.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (409.9 kB 查看哈希)

上传时间 PyPy manylinux: glibc 2.17+ ARM64

jq-1.8.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (435.6 kB 查看哈希)

上传时间 PyPy manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

jq-1.8.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl (410.1 kB 查看哈希)

上传时间 PyPy macOS 11.0+ ARM64

jq-1.8.0-pp310-pypy310_pp73-macosx_10_13_x86_64.whl (401.4 kB 查看哈希)

上传时间 PyPy macOS 10.13+ x86-64

jq-1.8.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (424.1 kB 查看哈希)

上传时间 PyPy manylinux: glibc 2.17+ x86-64

jq-1.8.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (409.8 kB 查看哈希)

上传时间 PyPy manylinux: glibc 2.17+ ARM64

jq-1.8.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (435.4 kB 查看哈希)

上传时间 PyPy manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

jq-1.8.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl (409.9 kB 查看哈希)

上传时间 PyPy macOS 11.0+ ARM64

jq-1.8.0-pp39-pypy39_pp73-macosx_10_13_x86_64.whl (401.2 kB 查看哈希)

上传于 PyPy macOS 10.13+ x86-64

jq-1.8.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (425.2 kB 查看哈希值)

上传于 PyPy manylinux: glibc 2.17+ x86-64

jq-1.8.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (411.1 kB 查看哈希值)

上传于 PyPy manylinux: glibc 2.17+ ARM64

jq-1.8.0-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (436.5 kB 查看哈希值)

上传于 PyPy manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

jq-1.8.0-pp38-pypy38_pp73-macosx_11_0_arm64.whl (409.7 kB 查看哈希值)

上传于 PyPy macOS 11.0+ ARM64

jq-1.8.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl (401.6 kB 查看哈希值)

上传于 PyPy macOS 10.9+ x86-64

jq-1.8.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (430.2 kB 查看哈希值)

上传于 PyPy manylinux: glibc 2.17+ x86-64

jq-1.8.0-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (414.4 kB 查看哈希值)

上传于 PyPy manylinux: glibc 2.17+ ARM64

jq-1.8.0-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (439.9 kB 查看哈希值)

上传于 PyPy manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

jq-1.8.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl (401.6 kB 查看哈希值)

上传于 PyPy macOS 10.9+ x86-64

jq-1.8.0-cp313-cp313-win_amd64.whl (417.9 kB 查看哈希值)

上传于 CPython 3.13 Windows x86-64

jq-1.8.0-cp313-cp313-win32.whl (405.7 kB 查看哈希)

上传于 CPython 3.13 Windows x86

jq-1.8.0-cp313-cp313-musllinux_1_2_x86_64.whl (750.4 kB 查看哈希)

上传于 CPython 3.13 musllinux: musl 1.2+ x86-64

jq-1.8.0-cp313-cp313-musllinux_1_2_i686.whl (746.4 kB 查看哈希)

上传于 CPython 3.13 musllinux: musl 1.2+ i686

jq-1.8.0-cp313-cp313-musllinux_1_2_aarch64.whl (721.0 kB 查看哈希)

上传于 CPython 3.13 musllinux: musl 1.2+ ARM64

jq-1.8.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (746.3 kB 查看哈希)

上传于 CPython 3.13 manylinux: glibc 2.17+ x86-64

jq-1.8.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (725.9 kB 查看哈希)

上传于 CPython 3.13 manylinux: glibc 2.17+ ARM64

jq-1.8.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (733.7 kB 查看哈希)

上传于 CPython 3.13 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

jq-1.8.0-cp313-cp313-macosx_11_0_arm64.whl (421.3 kB 查看哈希)

上传于 CPython 3.13 macOS 11.0+ ARM64

jq-1.8.0-cp313-cp313-macosx_10_13_x86_64.whl (415.0 kB 查看哈希)

上传于 CPython 3.13 macOS 10.13+ x86-64

jq-1.8.0-cp312-cp312-win_amd64.whl (417.3 kB 查看哈希)

上传于 CPython 3.12 Windows x86-64

jq-1.8.0-cp312-cp312-win32.whl (405.5 kB 查看哈希)

上传于 CPython 3.12 Windows x86

jq-1.8.0-cp312-cp312-musllinux_1_2_x86_64.whl (751.2 kB 查看哈希)

上传于 CPython 3.12 musllinux: musl 1.2+ x86-64

jq-1.8.0-cp312-cp312-musllinux_1_2_i686.whl (746.8 kB 查看哈希)

上传于 CPython 3.12 musllinux: musl 1.2+ i686

jq-1.8.0-cp312-cp312-musllinux_1_2_aarch64.whl (722.0 kB 查看哈希)

上传于 CPython 3.12 musllinux: musl 1.2+ ARM64

jq-1.8.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (748.9 kB 查看哈希)

上传于 CPython 3.12 manylinux: glibc 2.17+ x86-64

jq-1.8.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (729.1 kB 查看哈希)

上传于 CPython 3.12 manylinux: glibc 2.17+ ARM64

jq-1.8.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (735.9 kB 查看哈希)

上传于 CPython 3.12 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

jq-1.8.0-cp312-cp312-macosx_11_0_arm64.whl (422.3 kB 查看哈希)

上传于 CPython 3.12 macOS 11.0+ ARM64

jq-1.8.0-cp312-cp312-macosx_10_9_x86_64.whl (415.9 kB 查看哈希)

上传于 CPython 3.12 macOS 10.9+ x86-64

jq-1.8.0-cp311-cp311-win_amd64.whl (416.9 kB 查看哈希)

上传于 CPython 3.11 Windows x86-64

jq-1.8.0-cp311-cp311-win32.whl (405.7 kB 查看哈希)

上传时间 CPython 3.11 Windows x86

jq-1.8.0-cp311-cp311-musllinux_1_2_x86_64.whl (749.3 kB 查看哈希)

上传时间 CPython 3.11 musllinux: musl 1.2+ x86-64

jq-1.8.0-cp311-cp311-musllinux_1_2_i686.whl (746.6 kB 查看哈希)

上传时间 CPython 3.11 musllinux: musl 1.2+ i686

jq-1.8.0-cp311-cp311-musllinux_1_2_aarch64.whl (722.8 kB 查看哈希)

上传时间 CPython 3.11 musllinux: musl 1.2+ ARM64

jq-1.8.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (746.6 kB 查看哈希)

上传时间 CPython 3.11 manylinux: glibc 2.17+ x86-64

jq-1.8.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (731.5 kB 查看哈希)

上传时间 CPython 3.11 manylinux: glibc 2.17+ ARM64

jq-1.8.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (739.6 kB 查看哈希)

上传时间 CPython 3.11 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

jq-1.8.0-cp311-cp311-macosx_11_0_arm64.whl (422.4 kB 查看哈希)

上传时间 CPython 3.11 macOS 11.0+ ARM64

jq-1.8.0-cp311-cp311-macosx_10_9_x86_64.whl (416.9 kB 查看哈希)

上传时间 CPython 3.11 macOS 10.9+ x86-64

jq-1.8.0-cp310-cp310-win_amd64.whl (417.8 kB 查看哈希)

上传时间 CPython 3.10 Windows x86-64

jq-1.8.0-cp310-cp310-win32.whl (407.1 kB 查看哈希)

上传时间 CPython 3.10 Windows x86

jq-1.8.0-cp310-cp310-musllinux_1_2_x86_64.whl (725.5 kB 查看哈希)

上传时间 CPython 3.10 musllinux: musl 1.2+ x86-64

jq-1.8.0-cp310-cp310-musllinux_1_2_i686.whl (723.0 kB 查看哈希)

上传时间 CPython 3.10 musllinux: musl 1.2+ i686

jq-1.8.0-cp310-cp310-musllinux_1_2_aarch64.whl (698.0 kB 查看哈希)

上传时间 CPython 3.10 musllinux: musl 1.2+ ARM64

jq-1.8.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (737.4 kB 查看哈希)

上传时间 CPython 3.10 manylinux: glibc 2.17+ x86-64

jq-1.8.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (719.3 kB 查看哈希)

上传时间 CPython 3.10 manylinux: glibc 2.17+ ARM64

jq-1.8.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (727.9 kB 查看哈希)

上传时间 CPython 3.10 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

jq-1.8.0-cp310-cp310-macosx_11_0_arm64.whl (422.2 kB 查看哈希)

上传时间 CPython 3.10 macOS 11.0+ ARM64

jq-1.8.0-cp310-cp310-macosx_10_9_x86_64.whl (416.5 kB 查看哈希)

上传时间 CPython 3.10 macOS 10.9+ x86-64

jq-1.8.0-cp39-cp39-win_amd64.whl (417.7 kB 查看哈希)

上传时间 CPython 3.9 Windows x86-64

jq-1.8.0-cp39-cp39-win32.whl (407.4 kB 查看哈希)

上传于 CPython 3.9 Windows x86

jq-1.8.0-cp39-cp39-musllinux_1_2_x86_64.whl (726.1 kB 查看哈希)

上传于 CPython 3.9 musllinux: musl 1.2+ x86-64

jq-1.8.0-cp39-cp39-musllinux_1_2_i686.whl (723.8 kB 查看哈希)

上传于 CPython 3.9 musllinux: musl 1.2+ i686

jq-1.8.0-cp39-cp39-musllinux_1_2_aarch64.whl (698.7 kB 查看哈希)

上传于 CPython 3.9 musllinux: musl 1.2+ ARM64

jq-1.8.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (738.1 kB 查看哈希)

上传于 CPython 3.9 manylinux: glibc 2.17+ x86-64

jq-1.8.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (719.6 kB 查看哈希)

上传于 CPython 3.9 manylinux: glibc 2.17+ ARM64

jq-1.8.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (728.9 kB 查看哈希)

上传于 CPython 3.9 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

jq-1.8.0-cp39-cp39-macosx_11_0_arm64.whl (422.3 kB 查看哈希)

上传于 CPython 3.9 macOS 11.0+ ARM64

jq-1.8.0-cp39-cp39-macosx_10_9_x86_64.whl (416.7 kB 查看哈希)

上传于 CPython 3.9 macOS 10.9+ x86-64

jq-1.8.0-cp38-cp38-win_amd64.whl (420.0 kB 查看哈希)

上传于 CPython 3.8 Windows x86-64

jq-1.8.0-cp38-cp38-win32.whl (408.3 kB 查看哈希)

上传于 CPython 3.8 Windows x86

jq-1.8.0-cp38-cp38-musllinux_1_2_x86_64.whl (734.4 kB 查看哈希值)

上传时间 CPython 3.8 musllinux: musl 1.2+ x86-64

jq-1.8.0-cp38-cp38-musllinux_1_2_i686.whl (734.5 kB 查看哈希值)

上传时间 CPython 3.8 musllinux: musl 1.2+ i686

jq-1.8.0-cp38-cp38-musllinux_1_2_aarch64.whl (707.7 kB 查看哈希值)

上传时间 CPython 3.8 musllinux: musl 1.2+ ARM64

jq-1.8.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (744.2 kB 查看哈希值)

上传时间 CPython 3.8 manylinux: glibc 2.17+ x86-64

jq-1.8.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (726.3 kB 查看哈希值)

上传时间 CPython 3.8 manylinux: glibc 2.17+ ARM64

jq-1.8.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (735.8 kB 查看哈希值)

上传时间 CPython 3.8 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

jq-1.8.0-cp38-cp38-macosx_10_9_x86_64.whl (416.4 kB 查看哈希值)

上传时间 CPython 3.8 macOS 10.9+ x86-64

jq-1.8.0-cp37-cp37m-win_amd64.whl (414.6 kB 查看哈希值)

上传时间 CPython 3.7m Windows x86-64

jq-1.8.0-cp37-cp37m-win32.whl (404.8 kB 查看哈希值)

上传时间 CPython 3.7m Windows x86

jq-1.8.0-cp37-cp37m-musllinux_1_2_x86_64.whl (705.2 kB 查看哈希值)

上传时间 CPython 3.7m musllinux: musl 1.2+ x86-64

jq-1.8.0-cp37-cp37m-musllinux_1_2_i686.whl (701.8 kB 查看哈希值)

上传时间 CPython 3.7m musllinux: musl 1.2+ i686

jq-1.8.0-cp37-cp37m-musllinux_1_2_aarch64.whl (681.7 kB 查看哈希值)

上传时间 CPython 3.7m musllinux: musl 1.2+ ARM64

jq-1.8.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (705.5 kB 查看哈希值)

上传时间 CPython 3.7m manylinux: glibc 2.17+ x86-64

jq-1.8.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (688.1 kB 查看哈希值)

上传时间 CPython 3.7m manylinux: glibc 2.17+ ARM64

jq-1.8.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (698.4 kB 查看哈希值)

上传时间 CPython 3.7m manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

jq-1.8.0-cp37-cp37m-macosx_10_9_x86_64.whl (415.2 kB 查看哈希值)

上传时间 CPython 3.7m macOS 10.9+ x86-64

jq-1.8.0-cp36-cp36m-musllinux_1_2_x86_64.whl (688.3 kB 查看哈希值)

上传时间 CPython 3.6m musllinux: musl 1.2+ x86-64

jq-1.8.0-cp36-cp36m-musllinux_1_2_i686.whl (685.8 kB 查看哈希值)

上传时间 CPython 3.6m musllinux: musl 1.2+ i686

jq-1.8.0-cp36-cp36m-musllinux_1_2_aarch64.whl (662.3 kB 查看哈希值)

上传时间 CPython 3.6m musllinux: musl 1.2+ ARM64

jq-1.8.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (686.8 kB 查看哈希值)

上传时间 CPython 3.6m manylinux: glibc 2.17+ x86-64

jq-1.8.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (668.9 kB 查看哈希值)

上传时间 CPython 3.6m manylinux: glibc 2.17+ ARM64

jq-1.8.0-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (679.0 kB 查看哈希值)

上传时间 CPython 3.6m manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

jq-1.8.0-cp36-cp36m-macosx_10_9_x86_64.whl (412.9 kB 查看哈希值)

上传时间 CPython 3.6m macOS 10.9+ x86-64

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面