我有一个json文件,其数据如下:
{
"id": 1008,
"description": "Cheese, caraway",
"tags": [ ],
"manufacturer": "",
"group": "Dairy and Egg Products",
"portions": [
{
"amount": 1,
"unit": "oz",
"grams": 28.35
}
],
"nutrients": [
{
"value": 25.18,
"units": "g",
"description": "Protein",
"group": "Composition"
},
{
"value": 29.2,
"units": "g",
"description": "Total lipid (fat)",
"group": "Composition"
},
{
"value": 3.06,
"units": "g",
"description": "Carbohydrate, by difference",
"group": "Composition"
},
{
"value": 3.28,
"units": "g",
"description": "Ash",
"group": "Other"
}
]
}
我使用以下代码尝试从中读取,
import json
path = 'C:\\Users\\IBM_ADMIN\\Desktop\\ml-1m\\food_nutrients_database - 副本.json'
data = open(path).read()
records = json.loads(data)
但收到以下错误:
records = json.loads(data)
ValueError: Expecting value: line 1 column 1 (char 0)
这里有什么问题?我注意到从“数据”开始的结果以“'锘begin”开头,这是可能的原因吗?如果是的话,如何解决?
答案 0 :(得分:2)
不要那样做。只需从整个文件传递数据。
data = open(path).read()
records = json.loads(data)
您可以使用load()
来缩短它,它使用文件对象本身:
records = json.load(open(path))
答案 1 :(得分:1)
你做错了是,你正在从JSON文件读取每一行并将其传递给json.load(),你需要做的就是,打开文件一次,读取内容,然后将它传递给json.load方法,这将有效。
file_data = open(path).read()
json_data = json.loads(file_data)
发布的JSON格式也不正确,因此请确保您的JSON 格式是正确的。
答案 2 :(得分:0)
您正在从字符串中单独读取这些行。试试这个:
Tk()
json.loads是将字符串加载到json对象,所以一定不要将它与json.load混淆