|
JSON
|
Python
|
|
object
|
dict
|
|
array
|
list
|
|
string
|
unicode
|
|
number (int)
|
int, long
|
|
number (real)
|
float
|
|
true
|
True
|
|
false
|
False
|
|
null
|
None
|
一。
但在使用json模块的时候需要注意的是对中文的处理,loads方法如果传入的字符串的编码不是UTF-8的话,需要用encoding指定字符编码
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import json
js = json.loads('{"insun": "泰囧 / 人在囧途2 / Lost in Thailand "}')
print json.dumps(js)
print json.dumps(js,ensure_ascii=False)
{"insun": "\u6cf0\u56e7 / \u4eba\u5728\u56e7\u90142 / Lost in Thailand "}
{"insun": "泰囧 / 人在囧途2 / Lost in Thailand "}
二。如果传入的字符串的编码不是UTF-8的话,需要用encoding指定字符编码
| dataDict = json.loads(dataJsonStr); |
其中dataJsonStr是json字符串,如果其编码本身是非UTF-8的话,比如是GB2312的,那么上述代码,就会导致出错。改为对应的:
| dataDict = json.loads(dataJsonStr, encoding="GB2312"); |
就可以了。
此处,即对应着上面函数解释中的:
If s is a str instance and is encoded with an ASCII based encoding other than UTF-8 (e.g. latin-1), then an appropriate encoding name must be specified
dataDict = json.loads(dataJsonStr, encoding="GB2312");
为例,即使你此处的字符串dataJsonStr,已经通过encoding指定了合适的编码,但是由于其中,包含了其他的编码的字符,比如我本身 dataJsonStr是GB2312的字符,但是其中又包含了的一些日文字符,此时,json.loads还是会出错,因为此处的 dataJsonStr不是以ASCII为基础的字符编码,所以,需要先去将dataJsonStr转换为Unicode,然后再调用 json.loads,就可以了。
代码如下:
| dataJsonStrUni = dataJsonStr.decode("GB2312"); dataDict = json.loads(dataJsonStrUni, encoding="GB2312"); |
18.2. json — JSON encoder and decoder
http://docs.python.org/2/library/json.html
json.dumps(obj, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, encoding="utf-8", default=None, sort_keys=False, **kw)
python json 中文
Python JSON模块解码中文的BUG
http://www.douban.com/note/214822809/
使用python处理json
http://www.giser.net/?p=990
python下调用json.dumps中文显示问题解决办法
http://blog.csdn.net/sagittar/article/details/6169605
Python解析json数据结构范例
http://hi.baidu.com/leejun_2005/item/fc688affc196f8723c198b7c
Python中json.loads解析包含\n的字符串会出错
http://www.crifan.com/use_python_json_loads_parse_string_contain_newline_will_fail_error/
python中自带了处理python的模块,使用时候直接import json即可。使用loads方法即可将json字符串转换成python对象,对应关系如下:JSONPythonobjectdictarrayliststringunicodenumber (int)int, long
python中自带了处理python的模块,使用时候直接import json即可。 使用loads方法即可将json字符串转换成python对象,对应关系如下:
JSON Python
object dict
array list
string unicode
number (int) int, long
number (real) float
true True
false False
null None
但在使用json模块的时候需要注意的是对中文的处理,loads方法如果传入的字符串的编码不是UTF-8的话,需要用e
# 指定文件编码格式为 UTF-8
with open("file.json", "r", encoding="UTF-8") as f:
data = json.load(f)
# 可以使用读取到的数据进行处理
print(data)
python中自带了处理python的模块,使用时候直接import json即可。
使用loads方法即可将json字符串转换成python对象,对应关系如下:
JSON Python
object dict
array list
string unicode
number (int) int, long
number (real) float
true True
false ...
在用python的时候,我们经常需要保存数据为json格式,虽然是一个简单的操作,但是经常会记不住怎么操作,我这里梳理一下带中文的数据的json保存和读取
dumps : 把数据类型转换成字符串
dump : 把数据类型转换成字符串并存储在文件中
loads : 把字符串转换成数据类型
load : 把文件打开从字符串转换成数据类型
json只能序列化最基本的数据类型,josn只能把常用的数据类型序列化(列表、字典、列表、字符串、数字、),但不能是日期格式、类对象等。
import json
Python使用json.loads之后打印中文会出现乱码的问题,解决方法如下:
with open('city.json', 'r') as json_file:
>>> import json
>>> data = "{'field1': 0, 'field2': 'hehehehe', 'field3': 'hahaha'}"
>>> json.loads(data)
Traceback (most recent call last):
File “”, line 1, in
File “/usr/lib/python3.5/json/init.py”, line 319, in loads
return _default_decoder.decode(s)
File “/usr/lib/
def json_txt(self, dic_json):
#self.debug_print("json_txt")
if isinstance(dic_json, dict): # 判断是否是字典类型isinstance 返回True false
for key in dic_json:
#dic_json = json.loads(s)
s = dic_json[key]
#self.debug_print(str(len(s)) + " type:" + str(type(s)))
t=str(type(s))
json.loads() 方法可以将一个JSON格式的字符串转换成Python的数据结构,例如字典、列表等。`json.loads()` 方法是 Python 中用于将 JSON 字符串转换为 Python 对象的方法。具体而言,`loads()` 方法接受一个 JSON 字符串作为参数,然后返回一个 Python 对象,该对象表示相应的 JSON 结构。
以下是 `json.loads()` 方法的基本语法:
```python
import json
python_object = json.loads(json_string)
其中,`json_string` 是要解析的 JSON 字符串,`python_object` 是将要返回的 Python 对象。
例如,以下是一个 JSON 字符串:
```json
"name": "Alice",
"age": 25,
"is_student": true,
"hobbies": ["reading", "traveling"]
要将这个 JSON 字符串转换为 Python 对象,可以使用以下代码:
```python
import json
json_string = '{ "name": "Alice", "age": 25, "is_student": true, "hobbies": ["reading", "traveling"] }'
python_object = json.loads(json_string)
print(python_object)
这将输出以下 Python 对象:
```python
"name": "Alice",
"age": 25,
"is_student": True,
"hobbies": ["reading", "traveling"]