我想从站点获取json并将其更改为python对象。 我编写了此代码,但它显示了以下错误:
----- line 25, in <module>
meme_list.append(meme(**u))
TypeError: type object argument after ** must be a mapping, not str
这是我的密码:
import requests
import json
url = 'https://api.imgflip.com/get_memes'
headers = {'Accept': 'application/json'}
response = requests.get(url, headers=headers)
with open('meme_imgflip.json', 'wb') as outf:
outf.write(response.content)
class meme:
def __init__(self, name, url, id):
self.name = name
self.url = url
self.id = id
@staticmethod
def from_json(meme_string):
return meme(**json_dict)
def __repr__(self):
return f'<meme {self.id}>'
meme_list = []
with open('meme_imgflip.json', 'r') as json_file:
meme_data = json.loads(json_file.read())
for u in meme_data:
meme_list.append(meme(**u))
print (meme_list)
您正在调用的API返回一个字典,而不是列表。模因列表在
meme_data['data']['memes']
中。因此,循环应该是:meme_data
包含一个dict,因此u
将键分配给该dict,这些键是字符串。现在还不清楚你想要什么相关问题 更多 >
编程相关推荐