我正在尝试将JSON文件转换为python dict。但我失败了。
这是我的JSON文件:
me.json
:
{
"title": "this is title",
"Description": " Fendi is an Italian luxury labelarin. ",
"url": "https:/~"
}
{
"title": " - Furrocious Elegant Style",
"Description": " the Italian luxare vast. ",
"url": "https://www.s"
}
{
"title": "Rome, Fountains and Fendi Sunglasses",
"Description": " Fendi started off as a store. ",
"url": "https://www.~"
}
{
"title": "Tipsnglasses",
"Description": "Whether irregular orn season.",
"url": "https://www.sooic"
}
这是我的python代码:
import json
with open('me.json', 'r') as obj:
a = obj.read()
for i in a:
medict = dict(i)
我不知道为什么它不起作用,这是怎么回事。
在这种情况下有人可以帮助我吗?
答案 0 :(得分:1)
请使用json.loads
。
但是,您必须首先将文件中的数据更改为json格式。请使用以下数据。
我添加了[
,]
和,
。
[{
"title": "this is title",
"Description": " Fendi is an Italian luxury labelarin. ",
"url": "https:/~"
}
,
{
"title": " - Furrocious Elegant Style",
"Description": " the Italian luxare vast. ",
"url": "https://www.s"
}
,
{
"title": "Rome, Fountains and Fendi Sunglasses",
"Description": " Fendi started off as a store. ",
"url": "https://www.~"
}
,
{
"title": "Tipsnglasses",
"Description": "Whether irregular orn season.",
"url": "https://www.sooic"
}]
然后,请参考以下代码:
import json
with open('me.json', 'r') as obj:
a = obj.read()
medict = json.loads(a)
print (medict)
结果是:
[{'title': 'this is title', 'Description': ' Fendi is an Italian luxury labelarin. ', 'url': 'https:/~'}, {'title': ' - Furrocious Elegant Style', 'Description': ' the Italian luxare vast. ', 'url': 'https://www.s'}, {'title': 'Rome, Fountains and Fendi Sunglasses', 'Description': ' Fendi started off as a store. ', 'url': 'https://www.~'}, {'title': 'Tipsnglasses', 'Description': 'Whether irregular orn season.', 'url': 'https://www.sooic'}]
答案 1 :(得分:0)
您可以使用re
模块在问题中显示的输入文件中找到JSON对象(严格来说JSON format中没有)(即无需修改):
import ast
import json
from pprint import pprint
import re
with open('me.json', 'r') as obj:
data = obj.read()
matches = re.findall(r'({.+?})', data, re.DOTALL)
result = [json.loads(m) for m in matches]
pprint(result)
输出:
[{'Description': ' Fendi is an Italian luxury labelarin. ',
'title': 'this is title',
'url': 'https:/~'},
{'Description': ' the Italian luxare vast. ',
'title': ' - Furrocious Elegant Style',
'url': 'https://www.s'},
{'Description': ' Fendi started off as a store. ',
'title': 'Rome, Fountains and Fendi Sunglasses',
'url': 'https://www.~'},
{'Description': 'Whether irregular orn season.',
'title': 'Tipsnglasses',
'url': 'https://www.sooic'}]