python - 无法使用 json.loads 将字符串加载到对象中

标签 python json oop

我正在尝试将一个字符串加载到 python 对象中。我收到以下错误: 这是错误:预期值:第 15 行第 15 列(字符 351) {'allData': 无}

当我将 cprob 的值更改为以下代码时,没有问题:

    "cprob": {
        "T": 1,
        "A": 2,
        "C": 3
        }

test.txt中的数据:

[{
        "V": ["Offer", "Interview", "Grades", "Admission", "Experience"],
    "E": [["Grades", "Interview"],
        ["Experience", "Interview"],
        ["Grades", "Admission"],
        ["Interview", "Offer"]],
    "Vdata": {
        "Offer": {
            "ord": 4,
            "numoutcomes": 2,
            "vals": ["0", "1"],
            "parents": ["Interview"],
            "children": 0,
            "cprob": {
                "['0']": [.9, .1],
                "['1']": [.4, .6],
                "['2']": [.01, .99]
                }
            }
        }
}]

代码:

import json
class JsonData: 

    def __init__(self, path):
        self.allData = None 

    def dictload(self, path):
        f = open(path, 'r')
        ftext = f.read() 
        print(ftext)
        try: 
            self.allData = json.loads(ftext)
        except Exception as e:
            print('This is error : ', e)

path = "test.txt"

jsonData = JsonData(path)
jsonData.dictload(path)
print(vars(jsonData))

最佳答案

似乎 python 的 json 模块无法将 .1 理解为 0.1。如果您在句点前添加 0,它将起作用。

关于python - 无法使用 json.loads 将字符串加载到对象中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54221166/

相关文章:

python - 尝试用 python 进行分组和总结

python 矩阵与 numpy 矩阵。我究竟做错了什么?

python - tensorflow 2.4.1 需要 6~=1.15.0,但是你有 6 个 1.16.0,这是不兼容的

python - 将 nltk 树转换为 JSON 表示

java - 我是否正确使用 Java 中的静态方法?

java工厂和观察者模式

python - 为什么 *args 不适用于字符串格式

json - 放心 : extracting list of values from Json Response using java

json - Dart + JSON + Neo4j:某处有教程吗?

php - OOP 中网站的推荐好友功能