我需要将一个JSON字符串转换为Python对象。所谓的“对象”,是指像这样的“新”的Python3对象:
I need to convert a json-string to python object. By object I mean "new" python3 object like:
class MyClass(object):
我在jsonpickle的文档中找到了一些帮助。但是我找到的都是将对象先转换为json,然后再将其反向转换的教程。
我想要将来自Rest-API的json字符串进行转换。
以下是我目前所做的内容:
import requests
import jsonpickle
class Goal(object):
def __init__(self):
self.GoaldID = -1
self.IsPenalty = False
class Match(object):
def __init__(self):
self.Goals = []
headers = {
"Content-Type": "application/json; charset=utf-8"
}
url = "https://www.openligadb.de/api/getmatchdata/39738"
result = requests.get(url=url, headers=headers)
obj = jsonpickle.decode(result.json)
print (obj)
这会导致:
TypeError: the JSON object must be str, bytes or bytearray, not 'method'
对我来说很清楚,jsonpickle无法将其转换为我的类(Goal、Match),因为我没有告诉jsonpickle应该在哪个类中将输出转换。问题是我不知道如何告诉jsonpickle将JSON转换为类型为Match的对象?还有,我怎样才能告诉它目标列表应该是List<Goal>
类型的?
obj = jsonpickle.decode(result.content)
=> 这将会给你一个字典。 - falsetruobj = result.json()
也会给你一个字典。 - falsetru