当前位置: 首页 > 面试题库 >

在python中将json转换为字符串

徐智渊
2023-03-14
问题内容

一开始我没有清楚地解释我的问题。在python中将json转换为字符串时,请尝试使用str()json.dumps()

>>> data = {'jsonKey': 'jsonValue',"title": "hello world"}
>>> print json.dumps(data)
{"jsonKey": "jsonValue", "title": "hello world"}
>>> print str(data)
{'jsonKey': 'jsonValue', 'title': 'hello world'}
>>> json.dumps(data)
'{"jsonKey": "jsonValue", "title": "hello world"}'
>>> str(data)
"{'jsonKey': 'jsonValue', 'title': 'hello world'}"

我的问题是:

>>> data = {'jsonKey': 'jsonValue',"title": "hello world'"}
>>> str(data)
'{\'jsonKey\': \'jsonValue\', \'title\': "hello world\'"}'
>>> json.dumps(data)
'{"jsonKey": "jsonValue", "title": "hello world\'"}'
>>>

我的预期输出: "{'jsonKey': 'jsonValue','title': 'hello world''}"

>>> data = {'jsonKey': 'jsonValue',"title": "hello world""}
  File "<stdin>", line 1
    data = {'jsonKey': 'jsonValue',"title": "hello world""}
                                                          ^
SyntaxError: EOL while scanning string literal
>>> data = {'jsonKey': 'jsonValue',"title": "hello world\""}
>>> json.dumps(data)
'{"jsonKey": "jsonValue", "title": "hello world\\""}'
>>> str(data)
'{\'jsonKey\': \'jsonValue\', \'title\': \'hello world"\'}'

我的预期输出: "{'jsonKey': 'jsonValue','title': 'hello world\"'}"

对我来说,不必再次将输出字符串更改为json(dict)。

这该怎么做?


问题答案:

json.dumps()不仅仅是从Python对象中生成一个
字符串 ,它还会在Type Conversion
Table
之后始终生成一个
有效的
JSON字符串
(假设对象内部的所有内容都是可序列化的)。

例如,如果其中一个值为Nonestr()则将生成一个无法加载的无效JSON:

>>> data = {'jsonKey': None}
>>> str(data)
"{'jsonKey': None}"
>>> json.loads(str(data))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/__init__.py", line 338, in loads
    return _default_decoder.decode(s)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/decoder.py", line 366, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/decoder.py", line 382, in raw_decode
    obj, end = self.scan_once(s, idx)
ValueError: Expecting property name: line 1 column 2 (char 1)

dumps()将转换Nonenull生成可以加载的有效JSON字符串:

>>> import json
>>> data = {'jsonKey': None}
>>> json.dumps(data)
'{"jsonKey": null}'
>>> json.loads(json.dumps(data))
{u'jsonKey': None}


 类似资料:
  • 问题内容: 有没有一种方法可以在不使用Python定义架构的情况下将JSON字符串转换为Avro?还是只有Java才能处理的事情? 问题答案: Apache Avro™1.7.6入门(Python) :

  • 问题内容: 是否可以将json字符串(例如,从twitter搜索json服务返回的json字符串)转换为简单的字符串对象。这是从json服务返回的数据的一小部分表示形式: 可以说我以某种方式将结果存储在某个变量中,例如 obj 。我希望获得适当的值,如下所示: 我已经尝试过使用,但是它给了我一个错误提示 问题答案: 我已经尝试过使用,但是它给了我一个错误提示 要从字符串加载,请使用(注意“ s”)

  • 我有一个RestController类,它有一个方法可以根据电影的标题搜索电影: 如果我发送一个json字符串 从邮递员到endpoint,我收到一个空白的回复。 然后我做了一个 就在进入方法后找到字符串filmSearch正是我从邮递员发送的JSON字符串。我的应用程序没有看到JSON和提取值从filmSearch在我的请求附加到应用程序内字符串filmSearch. 如果我移除 在请求映射的一

  • 问题内容: 我对Python中的JSON感到有些困惑。在我看来,这就像是一本字典,出于这个原因,我正在尝试这样做: 但是当我这样做时,它会给出一个错误。 如何将该字符串转换为结构,然后调用以获得“示例词汇表”? 问题答案:

  • 将多个JSON字符串转换为字典 尝试转换为以下格式 转换为具有多个值的单键。请在此处添加工作代码,不要询问链接 如何在python中向字典键添加多个值?

  • 问题内容: 我正在使用Java,并且有一个JSON字符串: 然后我的Java地图: 我想将来自JSONObject的所有数据存储在该HashMap中。 谁能为此提供代码?我想使用图书馆。 问题答案: 我几天前通过递归编写了这段代码。