我是Python新手,我正在玩JSON数据.我想通过向现有JSON对象添加一些键值来动态构建JSON对象.
我试过以下但是得到了TypeError: 'str' object does not support item assignment
:
import json
json_data = json.dumps({})
json_data["key"] = "value"
print 'JSON: ', json_data
Run Code Online (Sandbox Code Playgroud) 我经历过这些问题,
- Python将多个变量分配给相同的值?列表 关于元组的行为
,我想只是变量可能是字符串,整数或字典- 同时声明多个变量的更优雅方式
问题有一些我想问的问题,但接受的答案要复杂得多
所以我想要实现的目标,
我声明了这个变量,并且我希望将此声明减少到尽可能少的代码行.
details = None
product_base = None
product_identity = None
category_string = None
store_id = None
image_hash = None
image_link_mask = None
results = None
abort = False
data = {}
Run Code Online (Sandbox Code Playgroud)
什么是最简单,易于维护?
我有一个非常基本的问题.
假设我调用一个函数,例如,
def foo():
x = 'hello world'
Run Code Online (Sandbox Code Playgroud)
如何让函数以这样的方式返回x,我可以将它用作另一个函数的输入或者在程序体内使用变量?
当我使用return并在另一个函数中调用该变量时,我得到一个NameError.
考虑以下:
In [1]: import types
In [2]: class A:
...: pass
...:
In [3]: a1 = A()
In [4]: a1.a, a1.b, a1.c = 1, 2, 3
In [5]: a2 = types.SimpleNamespace(a=1,b=2,c=3)
In [6]: sys.getsizeof(a1)
Out[6]: 56
In [7]: sys.getsizeof(a2)
Out[7]: 48
Run Code Online (Sandbox Code Playgroud)
这种尺寸差异从何而来?看着:
In [10]: types.__file__
Out[10]: '/Users/juan/anaconda3/lib/python3.5/types.py'
Run Code Online (Sandbox Code Playgroud)
我发现:
import sys
# Iterators in Python aren't a matter of type but of protocol. A large
# and changing number of builtin types implement *some* flavor of
# iterator. Don't check the …
Run Code Online (Sandbox Code Playgroud)