使用非ASC-II字符处理JSON对象?

时间:2017-08-23 16:21:35

标签: python json ascii

我正在尝试从python对Google CSE进行API调用,然后将生成的对象操作为我可以操作的字典对象。我认为这个问题没有重复,因为我认为这里的问题是有非ASC-II字符导致生成的对象为'NoneType'类型,结果json对象为'null'。我玩过json记录的选项,包括“ensure_ascii = False”,但还没有成功。任何帮助将不胜感激!

代码:

import pprint, os, json
from googleapisclient.discovery import build
def search(searchkey,datekey,developkey,enginekey):
    service = build("customsearch", "v1",
    developerKey=developkey).cse().list(
    q=searchkey,dateRestrict=datekey, 
    cx=enginekey,        
    ).execute()
pprint.pprint(service)

mykey       = 'My_Private_Key'

myengine    = '009333857041890623793:z_drq9obxp0'

object2write    = search('narco','20170101-20170201',mykey,myengine)
type(object2write)

jsonAbder = json.dumps(object2write, ensure_ascii=False, allow_nan=False)
print(jsonAbder)

1 个答案:

答案 0 :(得分:0)

您的错误的近因是您的search函数没有明确的return语句。因此,它隐含地返回None,它被编码为JSON null。您的问题与字符编码无关。

只需添加:

    return service

在你的功能结束时。