Python 如何在将字符串转换为json后访问json值
我正在尝试转换包含以下句子的字符串列表:Python 如何在将字符串转换为json后访问json值,python,json,Python,Json,我正在尝试转换包含以下句子的字符串列表: my_string=u'[{"id":1275829555,"guid":11}, {"id":1275829512,"guid" :12 }]' 并希望将其转换为以下json类型: [ { "id":1275829555, "guid":11 }, { "id":1275829555, "guid":12 } ] 很遗憾,我无法访问json print type(my_string) # <type '
my_string=u'[{"id":1275829555,"guid":11}, {"id":1275829512,"guid" :12 }]'
并希望将其转换为以下json类型:
[
{
"id":1275829555,
"guid":11
},
{
"id":1275829555,
"guid":12
}
]
很遗憾,我无法访问json
print type(my_string) # <type 'unicode'>
json_string = str( json.dumps(my_string, ensure_ascii=False).encode('utf8') )
print type(json_string) # <type 'str'>
j_obj = json.loads(json_string)
print type(j_obj) # <type 'unicode'>
print j_obj[0]
[
打印类型(我的字符串)#
json\u string=str(json.dumps(my\u string,确保\u ascii=False)。编码('utf8'))
打印类型(json_字符串)#
j_obj=json.load(json_字符串)
打印类型(j_obj)#
打印j_obj[0]
[
如何访问json来处理数组中的每个条目?对我来说,是这样做的
my_string=u'[{"id":1275829555,"guid":11}, {"id":1275829512,"guid" :12 }]'
j_obj = json.loads(my_string)
j_obj[0]
印刷品
{'guid': 11, 'id': 1275829555}
所以我想你的json\u string=str(json.dumps(我的字符串,请确保ascii=False)。encode('utf8'))
让你为我而烦恼
my_string=u'[{"id":1275829555,"guid":11}, {"id":1275829512,"guid" :12 }]'
j_obj = json.loads(my_string)
j_obj[0]
印刷品
{'guid': 11, 'id': 1275829555}
所以我想你的
json\u string=str(json.dumps(我的字符串,确保ascii=False)。encode('utf8'))有点问题
这会让你陷入困境json.dumps将python对象序列化为字符串,而json.loads将字符串反序列化为python对象。你将字符串传递到dumps,dumps会将该字符串序列化为另一个字符串。我想你想要的只是将我的字符串作为json字符串
>>> import json
>>> json_string = u'[{"id":1275829555,"guid":11}, {"id":1275829512,"guid" :12 }]'
>>> print json.dumps(json_string, ensure_ascii=False).encode('utf8') # No op. Just displaying string serialized to another string.
"[{\"id\":1275829555,\"guid\":11}, {\"id\":1275829512,\"guid\" :12 }]"
>>> j_obj = json.loads(json_string)
>>> print j_obj
[{u'guid': 11, u'id': 1275829555}, {u'guid': 12, u'id': 1275829512}]
>>> print j_obj[0]
{u'guid': 11, u'id': 1275829555}
json.dumps将python对象序列化为字符串,json.loads将字符串反序列化为python对象。您将字符串传递到dumps,这将把该字符串序列化为另一个字符串。我想您只需要将我的字符串作为json字符串
>>> import json
>>> json_string = u'[{"id":1275829555,"guid":11}, {"id":1275829512,"guid" :12 }]'
>>> print json.dumps(json_string, ensure_ascii=False).encode('utf8') # No op. Just displaying string serialized to another string.
"[{\"id\":1275829555,\"guid\":11}, {\"id\":1275829512,\"guid\" :12 }]"
>>> j_obj = json.loads(json_string)
>>> print j_obj
[{u'guid': 11, u'id': 1275829555}, {u'guid': 12, u'id': 1275829512}]
>>> print j_obj[0]
{u'guid': 11, u'id': 1275829555}
嗨,你做的一切都正确,你只需要一个字符串而不是unicode
import json
import unicodedata
my_string=u'[{"id":1275829555,"guid":11}, {"id":1275829512,"guid" :12 }]'
my_string = unicodedata.normalize('NFKD', my_string).encode('ascii','ignore')
print type(my_string) # <type 'unicode'>
print my_string
print type(json_string) # <type 'str'>
j_obj = json.loads(str(a))
print type(j_obj) # <type 'unicode'>
print j_obj[0]["id"]
导入json
导入Unicode数据
my_string=u'[{“id”:1275829555,“guid”:11},{“id”:1275829512,“guid”:12}]
my_string=unicodedata.normalize('NFKD',my_string.encode('ascii','ignore'))
打印类型(我的字符串)#
打印我的字符串
打印类型(json_字符串)#
j_obj=json.loads(str(a))
打印类型(j_obj)#
打印j_obj[0][“id”]
您好,您做的一切都是正确的,您只需要一个字符串而不是unicode
import json
import unicodedata
my_string=u'[{"id":1275829555,"guid":11}, {"id":1275829512,"guid" :12 }]'
my_string = unicodedata.normalize('NFKD', my_string).encode('ascii','ignore')
print type(my_string) # <type 'unicode'>
print my_string
print type(json_string) # <type 'str'>
j_obj = json.loads(str(a))
print type(j_obj) # <type 'unicode'>
print j_obj[0]["id"]
导入json
导入Unicode数据
my_string=u'[{“id”:1275829555,“guid”:11},{“id”:1275829512,“guid”:12}]
my_string=unicodedata.normalize('NFKD',my_string.encode('ascii','ignore'))
打印类型(我的字符串)#
打印我的字符串
打印类型(json_字符串)#
j_obj=json.loads(str(a))
打印类型(j_obj)#
打印j_obj[0][“id”]
您拥有的都是相同的JSON字符串,唯一的区别是格式或更精确的缩进。如:j_obj[0][“id”]=3您拥有的都是相同的JSON字符串,唯一的区别是格式或更精确的缩进。如:j_obj[0][“id”]=3在第369行的json.loads中发生了一些奇怪的事情:File“/usr/lib/python2.7/json/decoder.py”,在decode raise ValueError(errmsg(“额外数据”),s,end,len(s)))中,您得到了\x00,因为您可能有空值。我们将首先尝试在第json.loads行中消除所有的空值“/usr/lib/python2.7/json/decoder.py”,第369行,在decode-raise-ValueError(errmsg(“额外数据”,s,end,len)))中,您将得到\x00,因为您可能有空值,将首先尝试消除所有空值