我正在尝试将JSON对象解析为Python dict
。我从没做过 当我搜索这个特定错误( 第一个字符有什么问题吗?
)时,其他帖子都说正在加载的字符串实际上不是JSON字符串。我很确定这是。
在这种情况下,eval()
效果很好,但是我想知道是否有更合适的方法?
注意: 该字符串直接通过ptt工具来自Twitter。
>>> import json
>>> line = '{u\'follow_request_sent\': False, u\'profile_use_background_image\': True,
u\'default_profile_image\': False,
u\'verified\': False, u\'profile_sidebar_fill_color\': u\'DDEEF6\',
u\'profile_text_color\': u\'333333\', u\'listed_count\': 0}'
>>> json.loads(line)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/__init__.py", line 326, in loads
return _default_decoder.decode(s)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/decoder.py", line 366, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/decoder.py", line 382, in raw_decode
obj, end = self.scan_once(s, idx)
ValueError: Expecting property name: line 1 column 1 (char 1)
那绝对不是JSON-无论如何都不是上面打印的。它已经被解析为Python对象-JSON具有false
,not False
和不会像u
unicode一样显示字符串(所有JSON字符串都是unicode)。您确定您尚未将json字符串免费转换为链中某处的Python对象,因此将其加载到json.loads()显然是错误的,因为实际上它不是字符串?
问题内容: 我正在使用Python(2.7)’json’模块来处理各种JSON feed。不幸的是,这些提要中的某些不符合JSON标准- 特别是某些键没有用双语音标记(“)包装。这导致Python出现错误。 我想写一个丑陋的代码来解析和修复传入的数据之前,我想问一下-有什么方法可以让Python解析此格式错误的JSON或“修复”数据,以便有效的JSON? 工作实例 破例 我编写了一个小的REGEX
问题内容: 我一直在努力寻找一种在Python中加载JSON对象的好方法。我发送此json数据: 到后端,它将以字符串形式接收,然后我用来解析它。 但是每次我遇到同样的异常: 我用谷歌搜索,但是除了这个解决方案之外似乎什么都没用,在我个人看来效率不高,因为它接受任何类型的数据,即使不是json格式的数据也是如此。 任何建议将不胜感激。 问题答案: 这个: 不是JSON。 这个: 是JSON。 编辑
问题内容: 我在使用json.loads转换为dict对象时遇到麻烦,我无法弄清楚我在做什么错。我得到的确切错误是 这是我的代码: 我很确定错误发生在第二行到最后一行 但我不知道该如何解决。任何意见,将不胜感激。 问题答案: 将json字符串加载到python中,将python转储到json字符串中,例如: 所以那行是不正确的,因为您正在尝试使用python ,并期望应该有一个有效的。 因此,如果
问题内容: 我有一堂课,有以下领域。这些属性用于在需要调用外部rest API方法时序列化为json对象。 在属性名称中,外部API服务调用需要一些类似json归档名称格式的内容。 就我而言,这可以根据诸如test,dev和prod之类的环境进行更改。因此,我正在寻找一种将listId值移动到app.config中的方法。 我尝试按照以下方式进行操作,但不允许这样做。如果分配常数值,它将起作用。
问题内容: 在JavaScript中创建可在大多数网络浏览器上运行的对象的正确语法是什么(我的意思是:IE 6 +,Firefox 2 +,Opera 9+) 这有效吗 还是这个: 两者之间有什么区别? 问题答案: @AndreasN是正确的:JSON规范规定了使用引号的目的,以便使其实际上是JSON。如果不使用引号,则在Javascript中它可能是有效的对象文字,但不是JSON。除了浏览器端J
问题内容: 我想序列化一个对象,以便根据字段的类型对字段之一进行不同的命名。例如: 在这里,我希望将字段序列化为类似的内容,而不是总是根据情况包含一个称为不同类型的字段。 使用Jackson怎么能达到这样的目的? 问题答案: 使用自定义。 然后,假设您要序列化以下两个对象: 第一个将打印: 第二个: 我使用了包装对象的名称,因为它仅用作花边固定器。如果要删除它,则必须为 整个 类编写一个自定义序列