【发布时间】:2019-07-28 23:03:20
【问题描述】:
我在 javascript 中观察到一个非常奇怪的现象,但我不知道为什么。考虑下面这个例子
state = "West Bengal"
city = "Kolkata"
country = "India"
some_json = {country: {"city": city, "state": state, "col_val": {}}}
console.log(some_json)
当我执行some_json 变量的console.log() 时,我会在下面得到这个
{ country: { city: 'Kolkata', state: 'West Bengal', col_val: {} } }
如您所见,它将所有其他变量的值替换为上面定义的值,country 除外。这是为什么呢?
当我在 Python 中执行相同的操作时,它工作得很好。
state = "West Bengal"
city = "Kolkata"
country = "India"
some_json = {country: {"city": city, "state": state, "col_val": {}}}
print(some_json)
在这里做一个print 给了我预期的结果
{'India': {'state': 'West Bengal', 'col_val': {}, 'city': 'Kolkata'}}
那么为什么它会在 javascript 中给出不同的结果呢?由于我需要使用这种确切的格式,我该如何解决这个问题?
【问题讨论】:
-
在这两种情况下,您都在使用 JSON。一个是 JavaScript 对象,另一个是 Python 字典。至于为什么
country在 JavaScript 中没有被替换:因为它是一个键,而不是一个值。
标签: javascript json string object