从文件中读取JSON?

从文件中读取JSON?

我有点头疼,只是因为一个简单的样子,简单的陈述是把一些错误扔到了我的脸上。

我有一个名为string s.json的json文件,如下所示:

"strings": [{"-name": "city", "#text": "City"}, {"-name": "phone", "#text": "Phone"}, ...,
            {"-name": "address", "#text": "Address"}]

我想读一下JSON文件,只是暂时的。我有一些我发现的陈述,但它不起作用:

import jsonfrom pprint import pprintwith open('strings.json') as json_data:
    d = json.load(json_data)
    json_data.close()
    pprint(d)

控制台上显示的错误如下:

Traceback (most recent call last):
File "/home/.../android/values/manipulate_json.py", line 5, in <module>
d = json.loads(json_data)
File "/usr/lib/python2.7/json/__init__.py", line 326, 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())
TypeError: expected string or buffer
[Finished in 0.1s with exit code 1]

编辑

变身json.loadsjson.load

得到了这个:

Traceback (most recent call last):
File "/home/.../android/values/manipulate_json.py", line 5, in <module>
d = json.load(json_data)
File "/usr/lib/python2.7/json/__init__.py", line 278, in load
**kw)
File "/usr/lib/python2.7/json/__init__.py", line 326, in loads
return _default_decoder.decode(s)
File "/usr/lib/python2.7/json/decoder.py", line 369, in decode
raise ValueError(errmsg("Extra data", s, end, len(s)))
ValueError: Extra data: line 829 column 1 - line 829 column 2 (char 18476 - 18477)
[Finished in 0.1s with exit code 1]


慕运维8079593
浏览 699回答 3
3回答

叮当猫咪

这个json.load()方法(在“LOAD”中没有“s”)可以直接读取文件:import&nbsp;jsonwith&nbsp;open('strings.json')&nbsp;as&nbsp;f: &nbsp;&nbsp;&nbsp;&nbsp;d&nbsp;=&nbsp;json.load(f) &nbsp;&nbsp;&nbsp;&nbsp;print(d)你用的是json.loads()方法,用于弦只有争论。编辑:新消息是一个完全不同的问题。在这种情况下,该文件中有一些无效的JSON。为此,我建议通过JSON验证器.还有一些解决方案用于修复json,例如如何自动修复无效的JSON字符串?.

梵蒂冈之花

这是一份对我很好的代码副本。import&nbsp;jsonwith&nbsp;open("test.json")&nbsp;as&nbsp;json_file: &nbsp;&nbsp;&nbsp;&nbsp;json_data&nbsp;=&nbsp;json.load(json_file) &nbsp;&nbsp;&nbsp;&nbsp;print(json_data)用数据{ &nbsp;&nbsp;&nbsp;&nbsp;"a":&nbsp;[1,3,"asdf",true], &nbsp;&nbsp;&nbsp;&nbsp;"b":&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"Hello":&nbsp;"world" &nbsp;&nbsp;&nbsp;&nbsp;}}您可能需要将json.load行包装为TRY CATCH,因为无效的JSON将导致堆栈跟踪错误消息。

至尊宝的传说

在python 3中,我们可以使用以下方法。从文件中读取并转换为JSONimport&nbsp;json#&nbsp;Considering&nbsp;"json_list.json"&nbsp;is&nbsp;a&nbsp;json&nbsp;filewith&nbsp;open('json_list.json')&nbsp;as&nbsp;fd: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;json_data&nbsp;=&nbsp;json.load(fd)或import&nbsp;json json_data&nbsp;=&nbsp;json.load(open('json_list.json'))使用带着语句将自动关闭打开的文件描述符。字符串到JSONimport&nbsp;json json_data&nbsp;=&nbsp;json.loads('{"name"&nbsp;:&nbsp;"myName",&nbsp;"age":24}')
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python