1
knightdf 2016-08-19 09:29:34 +08:00 1
用 load 和 loads 都测试过了,完全没问题
|
2
northisland OP @knightdf
我这里还是悲剧的,请问你用的是哪个版本的 python ? Python 2.7.6 (default, Mar 22 2014, 22:59:56) [GCC 4.8.2] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> f = open('/var/www/html/bookmark_data.json', 'r') >>> s = f.read() >>> f.close() >>> import json >>> json.loads(s) Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/lib/python2.7/json/__init__.py", line 338, in loads return _default_decoder.decode(s) File "/usr/lib/python2.7/json/decoder.py", line 366, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "/usr/lib/python2.7/json/decoder.py", line 384, in raw_decode raise ValueError("No JSON object could be decoded") ValueError: No JSON object could be decoded >>> print s[:100] {"data":[{"id":"0","dateAdded":1471567289926},{"id":"1","title":"Bookmarks%20bar","parentId":"0", |
3
mgna17 2016-08-19 09:40:35 +08:00 1
试试 yaml.load
可以直接读不规范的 json |
4
billion 2016-08-19 09:42:58 +08:00
这种情况一般来说是你的 Json 格式不规范。例如列表的末尾元素后面多了一个逗号。
你先用在线的 json 格式检查网站检查一下你的这个 json 的字符串是否规范。 |
5
SErHo 2016-08-19 09:43:39 +08:00 2
>>> file("bookmark_data.json")
<open file 'bookmark_data.json', mode 'r' at 0x106d8ec00> >>> x = _.read() >>> x[:10] '\xef\xbb\xbf{"data"' >>> 看样子文件开头有 BOM 头,去掉就可以正常 load 了。 |
6
realityone 2016-08-19 09:43:42 +08:00 1
json.load(codecs.open('bookmark_data.json', 'r', 'utf-8-sig'))
|
7
SErHo 2016-08-19 09:45:08 +08:00 1
补充一下,这个并不是 Python 的问题,你这个用 ruby, nodejs 之类的也解析不出来, UTF8 文件不需要 BOM 头。
|
8
northisland OP @mgna17 多谢, yaml 好用, load 时间略长与 json 。
|
9
Kisesy 2016-08-19 09:48:16 +08:00 1
是不是 json 模块的问题,你这样试试
import requests r = requests.get('http://123.206.64.183/bookmark_data.json') print(r.json()) |
10
knightdf 2016-08-19 09:49:15 +08:00 1
@northisland 我是把你提供的 json 下下来读的, 2.7.12
|
11
bearqq 2016-08-19 09:51:26 +08:00 via Android 1
SErHo 是正解,其实不该 json 背锅,你在读取时犯的错
|
12
northisland OP |
13
21grams 2016-08-19 11:22:43 +08:00 via Android
python 哭晕了
|
14
quxw 2016-08-19 12:12:41 +08:00
推荐去听 《内核恐慌》 和 《字谈自唱》 的《字谈字串》
|
15
9hills 2016-08-19 12:20:26 +08:00 via iPhone
BOM 是个很烂的东西。
|