python - 将 JSON 写入文件而不将转义反斜杠写入文件?

标签 python json python-3.x encoding escaping

我正在尝试编写将 JSON 写入文件的代码,而不包含用于转义引号的反斜杠。目前我的输出如下所示:

"https://api.flickr.com/services/rest/format-json_method-flickr.photos.getInfo_photo_id-34869402493": "{\"photo\":{\"id\":\"34869402493\",\"secret\":\"56fcf0342c\",\"server\":\"4057\",\"farm\":5,\"dateuploaded\":\"1499030213\",\"isfavorite\":0,\"license\":\"0\",\"safety_level\":\"0\",\"rotation\":0,\"originalsecret\":\"c4d1d316ed\",\"originalformat\":\"jpg\",\"owner\":{\"nsid\":\"150544082@N05\",\"username\":\"ankitrana_\",\"realname\":\"Ankit Rana\",...

这就是我的目标:

{"https://api.flickr.com/services/rest/format-json_method-flickr.photos.search_per_page-50_tag_mode-all_tags-mountains": {"photos": {"page": 1, "pages": 5023, "perpage": 50, "total": "251136", "photo": [{"id": "35678630595", "owner": "61623564@N06", "secret": "97e4f3a4a2", "server": "4255", "farm": 5, "title": "IMG_9105", "ispublic": 1, "isfriend": 0, "isfamily": 0}, {"id": "35678623895", "owner": "61623564@N06", "secret": "f24e2ebb04", "server": "4003", "farm": 5, "title": "IMG_9247", "ispublic": 1, "isfriend": 0, "isfamily": 0},

这是我现在编写的函数:

def get_photo_data(photo_id):
para = {}
para["photo_id"] = photo_id
para["method"] = "flickr.photos.getInfo"
para["format"] = "json"
para["api_key"] = FLICKR_KEY
request_data = params_unique_combination("https://api.flickr.com/services/rest/", para)

if request_data in CACHE_DICTION:
    return CACHE_DICTION[request_data]
else:
    response = requests.get("https://api.flickr.com/services/rest/", para)
    jstring = response.text[14:-1]
    CACHE_DICTION[request_data] = jstring.replace(r'\"','"')
    cache_file = open(CACHE_FNAME, 'w')
    cache_file.write(json.dumps(CACHE_DICTION))
    cache_file.close()
    return CACHE_DICTION[request_data]

我相信这个问题是由 .dumps 方法中完成的编码引起的,因为即使我删除了\,它们仍然保留在写入的文件中。

最佳答案

在转储之前尝试加载它

cache_file.write(json.dumps(json.loads(CACHE_DICTION)))

关于python - 将 JSON 写入文件而不将转义反斜杠写入文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45539242/

相关文章:

python - 如何在 flask Controller 中正确使用 importlib?

python - 使用 Tkinter 创建烟花

android - 在android中解析11MB的大json

python - numpy python 3.4.1 : Python 3. 4 在注册表中找不到

python - 如何在应用函数上连接 sum 并将数据帧打印为文件中的表格格式

python - 如何将背景颜色添加到 pandas 数据框的特定列并将该彩色数据框保存到同一个 csv 中?

python - Django 测试 : error creating the test database: permission denied to copy database "template_postgis"

python - 每层放置 pow(N,levels) 个元素

javascript - 最低有效 JSON 是多少?

java - 不是 JSON 对象异常