gpt4 book ai didi

json - 单引号替换 Google App Engine Webapp 中的双引号

转载 作者:太空宇宙 更新时间:2023-11-03 15:33:09 24 4
gpt4 key购买 nike

我最近一直在使用 Google App Engine 进行大量编码。令我惊讶的是,在使用 simplejson 模块时,代码突然开始表现得很奇怪。虽然应用程序的一个实例将打印(使用 self.response.out.write(serialized),其中 serialized 是一个字典字符串)JSON 格式为:

{"error": "Your user key does not exist"}

生产者将打印出 JSON 字典字符串:

{'error': 'Your user key does not exist'}

显然,后一个是不正确的,因为它使用单引号,而不是双引号。 (因此 JSONLint 或几乎所有 JSON 解析在解析它时都会死掉)

最有趣的部分?当使用 logging.info('') 打印到控制台时,两者都正确打印 JSON。除了用于测试的打印代码,我几乎注释掉了生产代码中的所有内容,但问题仍然存在。

这是怎么回事?!在打印到屏幕上时,是否有一个神奇的开关可以将所有漂亮的双引号替换为单引号?!


为 Stack Overflowers 的娱乐添加:

下面的代码,在我的 GAE 实例和公共(public)服务器上执行,也将生成带单引号的 JSON,从而使这成为可能的最简单示例。

from google.appengine.ext import webapp
from google.appengine.ext.webapp import util

import simplejson as json


class MainHandler(webapp.RequestHandler):
def get(self):
testing = { "testing" : True, "why?" : 123 }

serialized = json.dumps(testing)

self.response.headers['Content-Type'] = 'application/json'
self.response.out.write(testing)


def main():
application = webapp.WSGIApplication([('/', MainHandler)],
debug=True)
util.run_wsgi_app(application)


if __name__ == '__main__':
main()

最佳答案

现在我只是觉得自己很蠢。

问题是我从未将序列化代码写入屏幕,而是数据数组本身。因此,要从上面的代码中获得一个功能齐全的示例,必须在 self.response.out.write(testing)< 中将 testing 替换为 serialized/.

TL;DR:仔细检查您的代码以及您要打印到屏幕上的内容, children 。

关于json - 单引号替换 Google App Engine Webapp 中的双引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5552910/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com