【发布时间】:2016-06-09 23:40:38
【问题描述】:
我正在尝试使用 json.loads 解析 Redshift 数据库表中的数据。我已经删除了在 Python 脚本中进行测试的函数,并且无法理解正在发生的事情。
我使用的代码是:
import json
j="'['Bars', 'American (Traditional)', 'Nightlife', 'Restaurants']'"
def trythis(item, reverse):
if not j:
return '1'
try:
arr = json.loads(j)
except ValueError:
return '2'
if not ascending:
arr = sorted(arr, reverse=True)
else:
arr = sorted(arr)
return json.dumps(arr)
print trythis(j, True)
这是返回2。
我尝试将输入变量更改为j="['Bars', 'American (Traditional)', 'Nightlife', 'Restaurants']",但没有奏效。我的输入值需要是什么格式?
【问题讨论】:
-
啊,谢谢。您是否建议使用
str.replace之类的东西将内部单引号替换为双引号? -
我只想将您对单引号的使用切换为双引号。阅读您的代码的任何人都不会感到困惑。
-
您不应该尝试手动创建 JSON,有许多细节您不太可能正确。使用从数据结构创建 JSON 的库函数,例如
json.dumps()。 -
你的单引号列表是从哪里来的?
-
来自 Yelp 的数据集。
标签: python sql json amazon-redshift udf