我的项目当前正在python中收到一条JSON消息,我需要从中获取一些信息.出于此目的,我们将其设置为字符串中的一些简单JSON:
jsonStr = '{"one" : "1", "two" : "2", "three" : "3"}'
Run Code Online (Sandbox Code Playgroud)
到目前为止,我一直在使用列表生成JSON请求,json.dumps但是为了做到与此相反,我认为我需要使用它,json.loads但我没有太多运气.任何人都可以给我一个片段,在上面的例子中输入"2"会返回"2"吗?
mydict = {"key1":"value1", "key2":"value2"}
Run Code Online (Sandbox Code Playgroud)
在Django模板中查找字典值的常规方法是{{ mydict.key1 }}, {{ mydict.key2 }}.如果键是循环变量怎么办?即:
{% for item in list %} # where item has an attribute NAME
{{ mydict.item.NAME }} # I want to look up mydict[item.NAME]
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
mydict.item.NAME失败.如何解决这个问题?
我正在向我的服务器发出请求jQuery.post(),我的服务器正在返回JSON对象(如{ "var": "value", ... }).但是,如果任何值包含单引号(正确转义\'),jQuery无法解析其他有效的JSON字符串.这是我的意思的一个例子(在Chrome的控制台中完成):
data = "{ \"status\": \"success\", \"newHtml\": \"Hello \\\'x\" }";
eval("x = " + data); // { newHtml: "Hello 'x", status: "success" }
$.parseJSON(data); // Invalid JSON: { "status": "success", "newHtml": "Hello \'x" }
Run Code Online (Sandbox Code Playgroud)
这是正常的吗?有没有办法通过JSON正确传递单个引用?
所以我花了很多时间在这上面,在我看来它应该是一个简单的修复.我正在尝试使用Facebook的身份验证来注册我的网站上的用户,而我正试图在服务器端进行操作.我已经到了获得访问令牌的地步,当我去的时候:
https://graph.facebook.com/me?access_token=MY_ACCESS_TOKEN
我得到的信息是我正在寻找的字符串,如下所示:
{"id":"123456789","name":"John Doe","first_name":"John","last_name":"Doe","link":"http:\/\/www.facebook.com\/jdoe","gender":"male","email":"jdoe\u0040gmail.com","timezone":-7,"locale":"en_US","verified":true,"updated_time":"2011-01-12T02:43:35+0000"}
看起来我应该能够使用dict(string)这个,但我收到这个错误:
ValueError: dictionary update sequence element #0 has length 1; 2 is required
所以我尝试使用Pickle,但得到了这个错误:
KeyError: '{'
我尝试使用django.serializers反序列化它,但有类似的结果.有什么想法吗?我觉得答案必须简单,我只是愚蠢.谢谢你的帮助!
我一直在试图找出一种在Python中加载JSON对象的好方法.我发送这个json数据:
{'http://example.org/about': {'http://purl.org/dc/terms/title': [{'type': 'literal', 'value': "Anna's Homepage"}]}}
Run Code Online (Sandbox Code Playgroud)
到后端它将作为字符串接收,然后我用来json.loads(data)解析它.
但每次我得到同样的例外:
ValueError: Expecting property name enclosed in double quotes: line 1 column 2 (char 1)
Run Code Online (Sandbox Code Playgroud)
我用谷歌搜索它,但除了这个解决方案似乎没有什么工作,这个解决方案json.loads(json.dumps(data))对我来说并不那么有效,因为它接受任何类型的数据,即使是那些不是json格式的数据.
任何建议将不胜感激.
我遇到Richard Stallman的以下声明:
'当你启动一个Lisp系统时,它会进入一个read-eval-print循环.大多数其他语言没有什么可比阅读,没有什么可比得上eval,没有什么比得上印刷.有什么差距不足!"
现在,我在Lisp中做了很少的编程,但我在Python中编写了大量代码,最近在Erlang中编写了一些代码.我的印象是这些语言也提供了read-eval-print循环,但Stallman不同意(至少关于Python):
"在人们告诉我它与Lisp基本相似之后,我浏览了Python的文档.我的结论是,情况并非如此.当你启动Lisp时,它会"读取","eval"和"print",所有这些都在Python中缺失.
Lisp和Python的read-eval-print循环之间真的存在根本的技术差异吗?你能举例说明Lisp REPL易于使用并且在Python中很难做到的事情吗?
比方说,我有一个与元组相同形式的字符串"(1,2,3,4,5)".将其转换为实际元组的最简单方法是什么?我想做的一个例子是:
tup_string = "(1,2,3,4,5)"
tup = make_tuple(tup_string)
Run Code Online (Sandbox Code Playgroud)
只是tuple()在字符串上运行会使整个事件成为一个大元组,而我想要做的就是把字符串理解为一个元组.我知道我可以使用正则表达式,但我希望有一种成本更低的方式.想法?
我有一个脚本将dict更改为字符串并将其保存到文件中.我想加载该文件并将其用作dict,但它是一个字符串.是否有类似的东西int("7")可以将格式化为dict({a: 1, b: 2})的字符串更改为dict?我试过了dict(),但这似乎不是它的作用.我听说过一些涉及JSON的过程eval(),但我真的没看到它的作用.程序加载它保存的相同数据,如果有人编辑它并且它不起作用,那就不是我的问题(我不需要任何先进的方法来确认dict数据或任何东西).
我想将以下字符串转换为字典而不使用python 3.5中的eval()函数.
d ="{'年龄':7,'姓名':'曼尼'}";
谁能告诉我比使用eval()函数更好的方法?(其实我想知道可以直接将字典转换为字符串的函数.)
我试图存储一个Python可以作为字典读入的环境变量.如果这是一个坏主意,请让我知道你的建议,我渴望学习.我担心如果我将数据存储为多个环境变量,可能会变得难以管理.
我编写了一个Raspberry Pi解锁门,根据来电号码拨打Twilio号码的来电ID,它运行良好.我想在Github上分享我的代码以获得反馈,但我不想与世界分享我的电话号码列表,因此我试图将其保存为环境变量,然后让Python读取它.
电话号码在这样的Python字典中.
building_admins = {
"+27792955555": "De Wet",
"+27722855555": "Marysol",
"+27878085555": "Blomerus",
}
Run Code Online (Sandbox Code Playgroud)
我试图在Ubuntu 14.04上将其保存为环境变量
export BUILDING_ADMINS='{
"+27792955555": "De Wet",
"+27722855555": "Marysol",
"+27878085555": "Blomerus",
}'
Run Code Online (Sandbox Code Playgroud)
1)我无法让Linux保存环境变量,我能做些什么来使它工作?
2)我觉得必须有一个更好的方法来做到这一点,我走错了方向,但我似乎找不到谷歌搜索正在解决我面临的问题.请指出我正确的方向.
python ×8
dictionary ×4
json ×4
parsing ×2
string ×2
django ×1
facebook ×1
javascript ×1
jquery ×1
lisp ×1
python-2.7 ×1
python-3.x ×1
templates ×1