Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在将字符串转换为json后访问json值_Python_Json - Fatal编程技术网

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,因为您可能有空值,将首先尝试消除所有空值