在Python中解析JSON时出现各种错误

2023-12-24

尝试从需要登录的 url 解析 json。在这里包括我的所有代码,因为我不确定错误在哪里。

try: import simplejson as json
except ImportError: import json
import urllib2

username = 'user'
password = '1234'
url = "https://www.blah.com/someplace"

# set up the username/password/url request
password_mgr = urllib2.HTTPPasswordMgrWithDefaultRealm()
password_mgr.add_password(None, "https://www.blah.com", username, password)
handler = urllib2.HTTPBasicAuthHandler(password_mgr)
opener = urllib2.build_opener(handler)
urllib2.install_opener(opener)
request = urllib2.Request(url)
response = opener.open(request)

# option 1
json_object = json.loads(str(response))

#option 2
json_object = json.loads(response)

如果我使用选项 1 运行代码(注释掉选项 2),则会收到以下错误:

Traceback (most recent call last):
  File "jsontest.py", line 22, in <module>
    json_object = json.loads(str(request))
  File "/usr/lib/python2.7/dist-packages/simplejson/__init__.py", line 413, in loads
    return _default_decoder.decode(s)
  File "/usr/lib/python2.7/dist-packages/simplejson/decoder.py", line 402, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "/usr/lib/python2.7/dist-packages/simplejson/decoder.py", line 420, in raw_decode
    raise JSONDecodeError("No JSON object could be decoded", s, idx)
simplejson.decoder.JSONDecodeError: No JSON object could be decoded: line 1 column 0 (char 0)

如果我运行选项 2:

Traceback (most recent call last):
  File "jsontest.py", line 23, in <module>
    json_object = json.loads(request)
  File "/usr/lib/python2.7/dist-packages/simplejson/__init__.py", line 413, in loads
    return _default_decoder.decode(s)
  File "/usr/lib/python2.7/dist-packages/simplejson/decoder.py", line 402, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
TypeError: expected string or buffer

据我所知,我的示例 JSON 是有效的:

{“set1”:[{“数据1”:“411”,“数据2”:“2033”,“数据3”:“1”,“数据4”:“43968077”,“数据5”:“217”,“数据6” :"106828","data7":[]}], “set2”:{“data8”:“411”,“data9”:“2033”,“data10”:“43968077”,“data11”:“217223360”,“data12”:“106828”}}

simplejson 版本 = 2.3.2, Python 2.7.3

对这一切都很陌生,所以任何指示都会非常有帮助。


你想要解码response,而不是请求:

json_object = json.load(response)

响应是一个类似文件的对象,因此您可以使用.load()让 json 库直接读取它。

或者(以一些临时内存使用为代价),使用.loads()具有完全读取响应的函数:

json_object = json.loads(response.read())

请注意,python 2.7 已经包含 simplejson 库,重命名为json http://docs.python.org/library/json.html:

import json
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在Python中解析JSON时出现各种错误 的相关文章

随机推荐

  • 即使打开了“noflatten_results”标志,使用 GROUP BY 选择表时 BigQuery 也会展平结果

    我有一个包含重复记录的表 我想删除它们 我创建了一个名为 hash code 的列 它只是所有列的 sha1 哈希值 重复的行将具有相同的哈希码 一切都很好 除了当我尝试使用包含 GROUP BY 的查询创建新表时 我的表具有 RECORD
  • Swift 变量初始化

    我有一个关于 swift 变量初始化的问题 我有两种方法来初始化变量 作为 Objective C 中类的 属性 其中哪一个是最正确的 class Class var label UILabel init label UILabel or
  • Android 4.4.x WebView 使用 location.reload() 时在浏览器中打开一个选项卡

    所有这些都会打开一个带有我的应用程序网址的新选项卡 在浏览器中 location reload document location reload window location reload window location href win
  • 清单与类清单。这个 Scala 错误是什么意思?

    这个错误是什么意思 scala gt val a Array def x Int new def x 3
  • Dask 中的遮罩

    我只是想知道是否有人可以帮助我展示如何使用 dask 在掩码数组上应用 sum 或 mean 等函数 我希望仅计算没有掩码的值的数组的总和 平均值 Code import dask array as da import numpy as n
  • 无法更新 Play 商品详情

    尝试更新商店列表 但无法 无法找到构建的问题 我们在过去 3 个月内没有在清单文件中添加任何额外内容 由 Google Play 支持团队建议 从开发者控制台中删除所有草稿工件 然后等待 2 3 小时 如果您仍然无法联系上Google 控制
  • 如何查看nHibernate生成的SQL?

    如何查看nHibernate生成的SQL 1 2版 您可以在 app config web config 文件中添加如下内容 在 configSections 节点中 section type section 在配置节点中
  • 计算 PostgreSQL 中字符串中子字符串出现的次数

    如何计算 PostgreSQL 中字符串中子字符串出现的次数 Example 我有一张桌子 CREATE TABLE test user uid integer NOT NULL name text result integer CONST
  • iOS10 UNNotificationServiceExtension 未调用

    我正在实施新的 iOS10 扩展以使用丰富的通知 我试图在推送通知上测试它 但不起作用 我只是收到一个简单的通知 并且没有经历扩展 我做了官方网站和其他一些地方指定的所有操作 我的应用程序已启动并运行 并带有推送通知和正确的配置文件 我向我
  • 同步 Mercurial 存储库集合

    我在网络共享上有一组 Mercurial 存储库 为了启用离线工作 我需要在我的笔记本电脑上保存该集合的本地副本 以及在在线时同步这两个集合的简单方法 为此 我编写了一个快速脚本 自动将每个本地存储库与相应的远程存储库同步 推和拉 但它缺少
  • 清理本机反应项目

    如何清理反应本机项目 有什么方法可以像清理 xcode 项目一样清理 React Native 项目吗 任何帮助将不胜感激 一个反应原生项目是关于一个Xcode项目和一个安卓项目 对于纯js代码 不需要clean 所以 你需要的是 清理 X
  • 使用 Javascript 在帧之间传递数据

    我已经设置了一个简单的例子http ryanmalin co uk frames http ryanmalin co uk frames 如果您按 添加 它将把左侧框架中的表单数据粘贴到右侧框架中 当我将正确的框架 URL 更改为另一个域的
  • 在 JAX-RS Provider 中使用 @Context 向 CDI bean 提供上下文信息

    我有一些网络服务 JAX RS WildFly 9 Resteasy RequestScoped public class SomeService operations 现在我想提取上下文信息 例如用户代理 这可以使用 Context pr
  • jQuery - 从所选选项获取自定义属性

    鉴于以下情况
  • 使用批处理脚本附加文件夹名称并加 1

    我对批处理脚本的这一部分有点陌生 但我想做的是附加一堆文件夹名称并递增 1 同时尊重时间戳 即最新的文件夹在前 最旧的文件夹在最后 我看过其他脚本没有效果 Before Folder 1 Folder 2 Folder 3 Folder 4
  • 仅在时间序列中填充有限数量的 NA

    有什么办法可以让我们填补NAs in a zoo or xts数量有限的对象NA向前 换句话说就像填充NA最多连续 3 个NAs 然后保留NA从第 4 个值开始直到有效数字 像这样的东西 library zoo x lt zoo 1 20
  • 自动布局 UILabels

    我有三个UILabels按照我的习惯UITableViewCell 这可能是一些UILabels将是空的 label text UITableViewCell tableView UITableView tableView cellForR
  • 在 R 中为逻辑回归模型绘制多条 ROC 曲线

    我有一个逻辑回归模型 使用 R 作为 fit6 lt glm formula survived ascore gini failed data records family binomial summary fit6 我在用着pROC用于绘
  • Javascript通知解决方案库:桌面、声音、弹出、标题栏闪烁等

    是否有任何 Javascript 库支持在长时间运行的操作 例如上传 结束时发出通知 通知最好是通用的 这样即使某些技术不起作用 例如桌面通知 浏览器仍然能够引起注意 声音铃声 桌面通知 Chrome Stackoverflow com 风
  • 在Python中解析JSON时出现各种错误

    尝试从需要登录的 url 解析 json 在这里包括我的所有代码 因为我不确定错误在哪里 try import simplejson as json except ImportError import json import urllib2