首页 > 解决方案 > 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()
    )

标签: pythonjsonajaxpython-requests

解决方案


推荐阅读