我一直在试图找出一个在Python中加载JSON对象的好方法。
我发送这个json数据:
{'http://example.org/about': {'http://purl.org/dc/terms/title': [{'type': 'literal', 'value': "Anna's Homepage"}]}}
到后端,它将作为一个字符串接收,然后我使用json.loads(数据)来解析它。
但每次我都得到相同的异常:
ValueError: Expecting property name enclosed in double quotes: line 1 column 2 (char 1)
我谷歌了一下,但似乎没有什么工作,除了这个解决方案json.loads(json.dumps(data)),这对我个人来说似乎不是那么有效,因为它接受任何类型的数据,甚至那些不是json格式的数据。
任何建议都将不胜感激。
你输入的似乎是一个有效的(亚马逊)离子,虽然不是json。在这种情况下,您应该能够将其解析为ion,然后将其输出为json。
single_quote_json = {'http://example.org/about': {'http://purl.org/dc/terms/title': [{'type': 'literal', 'value': "Anna's Homepage"}]}}
import amazon.ion.simpleion as ion
from amazon.ion.json_encoder import IonToJSONEncoder
parsed_ion = ion.loads(str(single_quote_json))
json.dumps(parsed_ion, cls=IonToJSONEncoder)
输出:
'{"http://example.org/about": {"http://purl.org/dc/terms/title": [{"type": "literal", "value": "Anna\'s Homepage"}]}}'
参考:Amazon Ion上的文档:https://amzn.github.io/ion-docs/guides/cookbook.html#down-converting-to-json
这很简单
import json
my_str = '{"message_type": "fixed_price_difference", "message": "Hello hello"}'
print(type(json.loads(my_str)), json.dumps(my_str))
Output:
<class 'dict'> "{\"message_type\": \"fixed_price_difference\", \"message\": \"Hello hello\"}"
比如语法就很重要
语法错误,不正确:
my_str = "{'message_type': 'fixed_price_difference', 'message': 'Hello Hello '}'
正确的语法:
my_str = '{"message_type": "fixed_price_difference", "message": "Hello Hello "}'
最后:
声明字符串以引号开始和结束。