从字符串中读取2D数组

时间:2015-11-29 05:51:33

标签: python json

我有数据,看起来像[["header","row"],["5","16"], ...]如果它们保存在文件中,可以通过

轻松阅读
with open(input_data, 'r') as f:
     data = json.load(f)

应该可以直接将它们读入data,但不知何故输入字符串无法转换为json data = json.loads(x)返回ValueError: No JSON object could be decoded

我错过了什么?

1 个答案:

答案 0 :(得分:0)

错误ValueError告诉您JSON无效。更正文件或字符串中的JSON,它将正确加载。

如果input_data是文件名,您的代码将正确加载文件中的JSON数据。

json.load() vs json.loads()

这两个函数都将处理json。

json.load()获取类似对象的文件。

json.loads()接受字符串或unicode对象。

JSON文件:

[["header","row"],["5","16"]]

此代码将从文件中正确读取上述JSON:

input_data = 'json_file_name.json'
with open(input_data, 'r') as f:
    data = json.load(f)
print(data)

这将处理存储在字符串中的JSON:

json_string = '[["header","row"],["5","16"]]'
print(json.loads(json_string))