【发布时间】:2018-04-26 17:44:09
【问题描述】:
我正在使用 Python(版本:3.4.4)Pyramid 框架来接收 json 请求,并使用 json.loads 将接收到的 json 转换为 python 对象。当使用 TestApp 对下面列出的应用程序进行单元测试时,一切正常,但是,当通过 Apache mod_wsgi 使用时,我在 json.loads(...) 中收到以下错误
TypeError: JSON 对象必须是 str,而不是 'dict'
知道为什么吗?
查看代码:
@view_config(route_name='api.analysis', request_method='POST', renderer='json')
def fetch_my_info(request):
data = json.loads(request.json_body, object_hook=lambda d: namedtuple('X', d.keys())(*d.values()))
...
测试代码:
self.testApp = TestApp(app)
response = self.testApp.post_json('/v1/info/analysis', params={"id", "123"})
...
【问题讨论】:
-
我猜 Pyramid 已经为您将 json 转换为 dict 了?
-
听起来已经是字典了
-
为什么在使用 mod_wsgi 的测试中而不是在使用 TestApp 的单元测试中?
-
为什么你期望两个不相关的软件在不先阅读文档的情况下表现相同?
-
您没有在代码示例中显示变量
content的来源。你能补充一下缺失的行吗?
标签: python json mod-wsgi pyramid