Python 尝试生成 json 时出现密钥错误
Python key error when trying to generate json
我正在尝试生成 JSON,这样我就可以利用 bigquery API 以编程方式生成新视图,但我遇到了一些困难。我编写了一个函数,该函数将包含名称和数据类型的字典作为参数,然后迭代此循环以创建 json,但是当我尝试执行此操作时出现关键错误。
def generateFieldJsonForSchema(d):
returnList = []
for name, type in d.iteritems():
print name
print type
print '{"thisName":"{0}"}'.format(name)
这是一个示例字典
{u'Coin_Balance': 'FLOAT',
u'Item_Received_SKU': 'STRING',
u'Player_Level': 'FLOAT',
u'Player_XP': 'FLOAT',
u'Price': 'FLOAT',
u'SKU': 'STRING',
u'Ticket_Balance': 'FLOAT'}
Python (anaconda python) 正在为 'thisName' 生成一个密钥错误,但我不明白为什么,因为它不是实际的密钥,我也不知道知道为什么它认为这是一把钥匙。有人可以给我一些指示吗?
谢谢
如果您需要格式字符串中的文字 {}
大括号;你需要通过将它们加倍来逃避它们 {{}}
:
>>> '{"name":whatever}'.format()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: '"name"'
>>> '{{"name":whatever}}'.format()
'{"name":whatever}'
要创建 json 文本,您应该使用 json
模块:
>>> import json
>>> d = dict(zip('abc', range(3)))
>>> for name in d:
... print(json.dumps({"thisName": name}))
...
{"thisName": "c"}
{"thisName": "b"}
{"thisName": "a"}
我正在尝试生成 JSON,这样我就可以利用 bigquery API 以编程方式生成新视图,但我遇到了一些困难。我编写了一个函数,该函数将包含名称和数据类型的字典作为参数,然后迭代此循环以创建 json,但是当我尝试执行此操作时出现关键错误。
def generateFieldJsonForSchema(d):
returnList = []
for name, type in d.iteritems():
print name
print type
print '{"thisName":"{0}"}'.format(name)
这是一个示例字典
{u'Coin_Balance': 'FLOAT',
u'Item_Received_SKU': 'STRING',
u'Player_Level': 'FLOAT',
u'Player_XP': 'FLOAT',
u'Price': 'FLOAT',
u'SKU': 'STRING',
u'Ticket_Balance': 'FLOAT'}
Python (anaconda python) 正在为 'thisName' 生成一个密钥错误,但我不明白为什么,因为它不是实际的密钥,我也不知道知道为什么它认为这是一把钥匙。有人可以给我一些指示吗?
谢谢
如果您需要格式字符串中的文字 {}
大括号;你需要通过将它们加倍来逃避它们 {{}}
:
>>> '{"name":whatever}'.format()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: '"name"'
>>> '{{"name":whatever}}'.format()
'{"name":whatever}'
要创建 json 文本,您应该使用 json
模块:
>>> import json
>>> d = dict(zip('abc', range(3)))
>>> for name in d:
... print(json.dumps({"thisName": name}))
...
{"thisName": "c"}
{"thisName": "b"}
{"thisName": "a"}