python - 使用 json.dumps/loads 序列化/反序列化给出 AttributeError : 'unicode' object has no attribute 'read'

标签 python django

我正在尝试从 Amazon FPS 获取付款结果信息,它有两种形式:

  • 使用 GET 和查询字符串参数将用户重定向到原始服务器
  • Amazon 将 POST 发送到具有匹配参数的原始服务器

我不能保证哪个请求会先到达服务器,所以我通过使用 request.GETrequest.POST 序列化将第一个请求存储在数据库中 json.dumps 然后尝试稍后使用 json.loads 加载它以与其他请求进行比较:

初始请求:

type = request.META['REQUEST_METHOD']
sub_req = SubscriptionRequest()
params = getattr(request, type)
serialized_params = json.dumps(params)
if type == 'GET': sub_req.client_params = serialized_params
if type == 'POST': sub_req.server_params = serialized_params
sub_req.save()

后续请求:

stored_params = json.load(sub_req.server_params if type == "GET" else sub_req.client_params)

错误:

  File "/var/www/test.com/htdocs/apps/subscription/services.py", line 147, in subscription_request_check_or_store
    stored_params = json.load(sub_req.server_params if type == "GET" else sub_req.client_params)
  File "/usr/lib/python2.7/json/__init__.py", line 274, in load
    return loads(fp.read(),
AttributeError: 'unicode' object has no attribute 'read'

最佳答案

Json.load() 从文件中读取。使用 json.loads() 解析字符串。

关于python - 使用 json.dumps/loads 序列化/反序列化给出 AttributeError : 'unicode' object has no attribute 'read' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16050738/

相关文章:

python - Reportlab 的 Code128 条码作为 HTML 图像标签,使用 Python 中的数据 URI 方案

python - 关于 XPath 选择器的问题(针对 Scrapy)

python - django-rosetta 文件是只读的

python - Opencv:检测 FFT 上最亮的线

python - 从 for 循环创建 json 对象数组

python - 如何在 django admin 中使用自定义字段进行搜索

django - 如何在 Django 模型中设置表约束 "deferrable initially deferred"?

django - 如何从另一个模型引用 Django 模型

python - Python 中的文本文件中并未删除所有重复项

python - 基于 2 列值的条件切片