python - 使用 python 搜索 json 中的值

标签 python json

所以,我尝试使用 python 搜索 json 文件,但完全陷入困境。我可能会因此而陷入困境,但我无处可去。我是一个Python新手,一直无法通过搜索找到我需要的信息....

这是我正在尝试做的事情: 我有一个常量,称为 A1,与 X1 长度相同,但值不同。我希望将我的常量除以每个后续的 X1(位于 json 文件中)。当余数(模)大于 2 时,我希望打印 X1 值。基本上我试图找到我的常量和每个 X1 的 GCD,但 gcd 通常仅为 1。我只希望在模大于 1 时打印。

这是我的 json 文件:

{
  “536723876acbdacbd3344”: {
    “X1”: "0x2345678abcdef1”,
    “X2”: "0x12345678abcde"
  },
  “7632948974879abcdabcd”: {
    “X1”: "0x1234678abcdef”,
    “X2”: "0x12345678abcde"
 },
  “23847298347233abcdabcd”: {
    “X1”: "0x1234678abcddd”,
    “X2”: "0x12345678abcde"
}
}

这是我到目前为止编写的代码:

import json

data = json.load(open("test1.json"))

def translate(w):
    A1 = int("0xffff123123", 16)
    if w in data.values:
        X1 = int("w", 16)
        if A1%X1 > 2:
            print("The modulo is", data.values[X1])
        else:
            print( "No match")

任何帮助都会很好。我很难通过搜索找到我需要的信息。谢谢!

最佳答案

import json

data=json.load(open("file.json"))

for key in data:
    A1 = int("0xffff123123", 16)
    obj = data.get(key)
    x1 = obj.get('X1')
    x1 = int(x1, 16)
    if A1%x1 > 2:
        # print what you need
        print("Module greater than 2")
    else:
        print("No match")

我不知道这是否正是您所需要的,但通过这种方式,您可以在 x1 中获得每个 JSON 对象的字段 X1 的值。由您向程序添加正确的逻辑(if 语句)。
注意:您粘贴的 JSON 中包含与双引号不同的字符 ( )。

关于python - 使用 python 搜索 json 中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52931965/

相关文章:

python - 如何在循环中使用使用 pyplot.Spectral 创建的调色板来绘制散点图?

java - REST - 当我使用 GET 时 SparkJava 不更新对象 JSON

javascript - 在node.js中将数组对象转换为json

javascript - 无法解析 JSON 对象、Stringify 或获取 javascript 属性

asp.net - 尝试在 asp.net 中创建 json Web 服务时出错

python - PyInstaller 在导入 Flask.ext 时遇到问题

python - 如何让 Python 求解这个二阶非线性 ODE?

python - Kivy按钮位置和标签背景色

Python any 和 in 和 for 循环的时间复杂度

java - Java 中的 JSON 解码