python - Python编写函数将大写引入布尔值
问题描述
我正在从 json 响应中收集数据,添加处理程序并将其保存到 data.jsonp 文件中。从这个 .jsonp 文件中,我使用 AJAX 加载 jsonp 并显示放映时间详细信息。为什么我的格式操作在我的 jsonp 文件中为布尔值添加大写?
我已经测试了 json.dump,但是由于我使用带有处理程序的 .jsonp 文件,json.dump 会将其保存为带有“dataHandler[json-stuff]”而不是 dataHandler[json-stuff] 的字符串
# setting handler for jsonp and logging
callbackhandle="dataHandler"
handledmoviedata = '{callback}{json};'.format(
callback=callbackhandle,
json=moviedata.json()
)
print(handledmoviedata)
# writing handledmoviedata to data.jsonp
file = open("data.jsonp","w")
file.write(handledmoviedata)
预期输出包括 jsonp 数据中的布尔值。相反,布尔值的第一个字母大写导致解析错误:ReferenceError: True is not defined
如果布尔值未大写,则脚本解析良好并正确显示放映时间。我相信这个问题与 .format 有关,因为当我在添加处理程序之前挖掘记录的响应时,布尔值没有大写。任何帮助将不胜感激,我仍然是初学者。
编辑:我的 jsonp 文件开头必须有一个回调句柄,这就是为什么我不能使用 json.dump
例如:回调[{json-stuff}] 不是 {json-stuff}
EDIT2:这是完整的 Python 脚本,API 密钥已被编辑,原因很明显
from datetime import date
import requests
import json
# constructing the parameters for API GET request
moviefeedparams = {
'startDate': date.today(),
'zip': '94568',
'radius': '2',
'api_key': '*redacted*',
'imageText': 'true',
'imageSize': 'Md',
}
print(moviefeedparams) # logging parameters for debugging if needed
# making the GET request & logging for debugging
moviedata = requests.get('http://data.tmsapi.com/v1.1/movies/showings', params=moviefeedparams) # (assembled url
print(moviedata.json())
# setting handler for jsonp and logging
callbackhandle="dataHandler"
handledmoviedata = '{callback}{json};'.format(
callback=callbackhandle,
json=moviedata.json()
)
print(handledmoviedata)
# writing data to data.jsonp
file = open("data.jsonp","w")
file.write(handledmoviedata)
EDIT3:使用 json.dump 时的结果 - 带有引号和大写布尔值的“dataHandler [{json-stuff}]” 使用 file.write 时的结果 - dataHandler [{json-stuff}] 但布尔值大写 想要的结果 - dataHandler [{json -东西}]
大写与.format有关,布尔值在我通过.format运行数据之前不会大写
handledmoviedata = '{callback}{json};'.format(
callback=callbackhandle,
json=moviedata.json()
)
解决方案
推荐阅读
- mongodb - docker-composed 用 mongoEngine 构建烧瓶,尝试连接但返回 pymongo 错误?
- powershell - powershell [System.IO.File]::WriteAllLines 不工作
- javascript - 执行 UI 块时抛出异常:[NSNull doubleValue]: unrecognized selector sent to instance 0x204329c00
- r - 在日期范围内并基于 R 中另一列的值将数据框的某些列的值相乘
- javascript - 如何使用特定元素拖动组件
- php - 复杂布尔值的 PHP 代码嗅探器规则
- java - 异常:SSLHandshakeException:没有合适的协议(协议被禁用或密码套件不合适)
- oauth - 我们可以在 OIDC 中请求 OAuth 2 范围吗?
- azure-devops - 在执行 Terraform git import 之前修改源文件
- javascript - 更改标签的href